mtools
поставляется с утилитой mlabel
, которая может выполнять эту работу.
mlabel -N aaaa1111 /dev/sdb1
Кроме того, вам, возможно, придется прибегнуть к шестнадцатеричному редактору. dosfstools
позволяет изменять метку только с помощью команды fatlabel
(что также делает mlabel
, только без идентификатора тома).
Если вы хотите воссоздать файловую систему с нуля, значение также можно указать с помощью mkfs.vfat -i VOLUME-ID
.
Просто включите проверку статуса выхода после grep
, он всегда будет получать статус выхода из последней команды конвейера по умолчанию:
sudo dmidecode | grep -q ThinkPad; echo $?
Используйте -q
для подавления любого вывод из grep
, поскольку нас интересует только статус выхода.
Вы можете использовать группировку команд, если хотите, но здесь это несколько избыточно:
sudo dmidecode | { grep -q ThinkPad; echo $? ;}
sudo dmidecode | grep -c ThinkPad | xargs test 0 -lt
Вам нужно изменить порядок xargs
и test
, а также его операнды, чтобы получить то, что вы хотите. Это вернет истинный статус, если есть ненулевые (> 0) ThinkPad, состоящие из строк.
В качестве альтернативы, если вы хотите сохранить порядок операндов тестовой команды, вы можете выполнить
sudo dmidecode | grep -c ThinkPad | xargs -I \{\} test \{\} -gt 0
А затем в обеих командах проверить значение переменной $?
, чтобы определить судьбу успеха grep / сбой, а именно:
if sudo dmidecode | grep -c ThinkPad | xargs -I \{\} test \{\} -gt 0; then
echo "success hooray!"
else
echo nothing
fi
Вдохновленный ответом Хемайла :
sudo dmidecode | grep -q ThinkPad && echo true || echo false
Это вернет true, если ThinkPad найден с помощью grep, и false, если нет .
Используя также test
и подстановку команд
,
test -n "$(sudo dmidecode | grep Thinkpad)"
,
[ -n "$(sudo dmidecode | grep Thinkpad)" ]
Если вы собираетесь использовать этот сценарий оболочки с проверкой if
, просто используйте -q
, как предложил heemayl:
if sudo dmidecode | grep -q Thinkpad
then
echo "I'm a Thinkpad"
fi
Поскольку блок if
проверяет статус выхода команды, мы можем полагаться на статус выхода grep
напрямую вместо того, чтобы печатать $?
и сравнивать его с чем-то другим.