Раздел с меткой recovery
будет фактическим установщиком Windows, поскольку Windows больше не поставляется с компакт-дисками. Раздел TI10686800A
— это вашC:\
(вы явно используете ноутбук toshiba ). Если вы когда-нибудь планируете вернуть Windows на это устройство, я настоятельно рекомендую сначала создать образ вашего диска, так как после того, как программа восстановления/установки OEM исчезнет, ваши возможности станут ограниченными.
Если вы не планируете хранить Windows, вы можете полностью стереть диск, нет необходимости что-либо хранить, так как Ubuntu поддерживает загрузку EFI и установит загрузчик EFI для вас.
С ksh
(, который не поддерживает {00..23}
, хотя вы можете использовать {0..23%02d}
в ksh93 )или zsh
(, где расширение {00..23}
исходит из ), это с:
typeset -Z2 var
Тогда:
$ var=0
$ echo "$var"
00
$ ((var++))
$ echo "$var"
01
Обратите внимание, что это влияет только на расширение переменной, а не на арифметическое расширение:
$ echo "$((var+1))"
2
Обратите внимание, что переменная также усечена до двух цифр:
$ var=123
$ echo "$var"
23
zsh$ echo $((var)) # value is still 123, only the expansion is truncated
123
ksh$ echo "$((var))" # value truncated upon assignment
23
В zsh
см. также ${(l:2::0:)expansion}
влево -дополнить (и обрезать )расширение с нулями до длины 2.
POSIX всегда можно использовать:
printf '%02d\n' "$var"
но обратите внимание, что он не усекает до двух цифр (, что в большинстве случаев также хорошо )и работает только с десятичными целыми строками:
Остерегайтесь:
$ bash -c "printf '%02d\n' 010"
08
(то же самое с yash, dash или GNU printf
, на самом деле это требование POSIX ).
Если вы ожидаете получить какой-либо формат, вы должны запросить его специально.
Печать целого числа($int
)с фиксированной шириной из n цифр с ведущими нулями, если ширина не заполнена, может быть выполнена с помощью:
printf '%0*d' "$n" "$int"
Пример:
$ printf '%0*d' 4 25
0025
$ printf '%0*d' 10 7
0000000007
Чтобы напечатать любое число с единицей ведущим нулем:
$ printf '0%d' 7
07
Но в оболочке (кроме ksh и zsh )номер 08
выдает ошибку:
$ dash -c 'i=08; echo $((i+1))'
dash: 1: Illegal number: 08
Это связано с тем, что в некоторых оболочках число, начинающееся с нуля, интерпретируется как число с основанием 8 (восьмеричное ). В восьмеричном числе 8 не существует. Итак, вам нужен другой способ вычисления, например, bc:
$ i="008"; echo "$i + 1 " | bc
9
Короче говоря, вам нужно что-то вроде:
for i in {00..23}; do hP=$( echo "$i+1" |bc ); printf '%s %02d\n' "$i" "$hP"; done