как установить имя хоста linux на основе метки тома флэш-диска [закрыто]

Я работаю live linux, который запускается с флэш-диска FAT32 , так как я запускаю много компьютеров, использующих этот флэш-диск, трудно определить, какой IP-адрес для его имени хоста, поскольку его IP-адрес должен динамически определяться dhcp, поэтому я хочу установить их имя хоста по метке тома, установленной на его флэш-диске

, я могу использовать blkid | grep sda1 или blkid | grep "vfat"

результат

#blkid | grep sda1
/dev/sda1: LABEL="SLAX" UUID="FAEB-513E" TYPE="vfat"

#blkid | grep "vfat"
/dev/sda1: LABEL="SLAX" UUID="FAEB-513E" TYPE="vfat"

, но как разобрать его метку и установить мое имя хоста при загрузке?

-1
задан 15 April 2014 в 10:20
1 ответ
hostname $(blkid | perl -lne '/LABEL="(.*?)".*vfat/ and print $1')

или

hostname $(blkid | perl -lne '/sda1.*LABEL="(.*?)"/ and print $1')

Поскольку у вас нет Perl, ваш grep может не иметь -P . если это так, попробуйте

hostname $(blkid | grep -Po 'LABEL="\K.*?(?=".*vfat)')

или

hostname $(blkid | grep -Po 'sda1: LABEL="\K.*?(?=".*)')

Для чистой версии Bash:

pattern='sda1.*LABEL="([^"]+)"'    # or: pattern='LABEL="([^"]+)".*vfat'
[[ $(sudo blkid) =~ $pattern ]]
hostname "${BASH_REMATCH[1]}"
3
ответ дан 5 December 2019 в 19:15

Теги

Похожие вопросы