echo -n "Enter number : "
read num
length=$(echo $num | wc -c)
length=$(( $length - 1 ))
echo "Your number $num in words : "
for (( i=1; i<=$length; i++ ))
do
# get one digit at a time
digit=$(echo $num | cut -c $i)
# use case control structure to find digit equivalent in words
case $digit in
0) echo -n "zero " ;;
1) echo -n "one " ;;
2) echo -n "two " ;;
3) echo -n "three " ;;
4) echo -n "four " ;;
5) echo -n "five " ;;
6) echo -n "six " ;;
7) echo -n "seven " ;;
8) echo -n "eight " ;;
9) echo -n "nine " ;;
esac
done
# just print new line
echo ""
Начну с того, что это не относится к части вашего вопроса об автоматической модификации /etc/default/grub
, но я подозреваю, что в этом нет необходимости.
UUID должен быть статическим, если вы не переформатируете раздел. Предполагая, что вы знаете базовое устройство, вы смотрите на /dev/disk/by-uuid
и видите что-то вроде:
$ ls -l /dev/disk/by-uuid
... 9577f213-665a-427b-aa45-8927b177224e ->../../sda1
...
Так что вам просто нужно найти соответствующий для устройства, которое является вашим загрузочным разделом.
Также есть команда blkid
:
$ blkid /dev/sda1
/dev/sda1: UUID="9577f213-665a-427b-aa45-8927b177224e"...
Рассматриваете ли вы ситуацию, когда UUID по какой-то причине изменяется?
Сначала найдем загрузочный раздел с
fdisk -l | grep '^/dev/[a-z]*[0-9]' | awk '$2 == "*"'
Затем направьте его вывод, как любезно предложил Энди Далтон выше, в blkid
fdisk -l | grep '^/dev/[a-z]*[0-9]' | awk '$2 == "*"' | blkid $1
Если вы ищете UUID устройства, смонтированного как /boot
в работающей системе, чистый способ — findmnt
изutil-linux
:
$ findmnt --output=UUID --noheadings --target=/boot
2b8c6b62-0f68-47d1-a5e7-3e56acce98ac
При использовании этих -поясняющих опций он выводит только UUID. Это также избавит вас от необходимости выяснять, какое устройство является релевантным.
Если вы просто ищете UUID известного вам устройства, независимо от того, смонтировано оно или нет, вы можете использовать blkid
, как указано в ответе Энди Далтона:
$ sudo blkid -s UUID -o value /dev/vda1
2b8c6b62-0f68-47d1-a5e7-3e56acce98ac
Опции -s tag
и -o format
ограничивают вывод только значением тега UUID.
Затем вы можете добавить UUID к GRUB_CMDLINE_LINUX
с помощью команды как:
sed -i.bkp 's/^\([[:blank:]]*GRUB_CMDLINE_LINUX=".*\)\(".*\)$/\1 fips=1 boot=UUID='"$newuuid"'\2/' /etc/default/grub
Что предполагает синтаксис опции -i
GNU sed
:, он отредактирует файл в -месте, а также создаст файл резервной копии grub.bkp
.
Обратите внимание, что мы не проверяем наличие параметра командной строки boot
; мы просто добавляемfips=1
newuuid
перед вторым "
, таким образом, предполагая, что ваша текущая командная строка заключена в двойные кавычки и не содержит двойных кавычек.