@fokin_nikolay1989

Как дописать сравнение на bash?

Принцип какой, если UUID вставленной флешки равен заданному значению UUID, (или на пример список UUID записан в файл) то значит вывод UUID совпадает
#!/bin/bash
echo "NACHALO"
UUID=$(blkid -s UUID -o value -t  TYPE=vfat)
echo "VIVOD UUID"

echo " $UUID"
if [0E48-D3D6 == "$UUID"]; then
echo "good"
else
echo "ne good"
fi

вот пример того что я написал, но чет он валиться на ошибку
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
@abcd0x00
Надо понимать, что это вызов программы, а не просто конструкция
[ 0E48-D3D6 == "$UUID" ]

Если разложить на составляющие, получится
[ - программа
0E48-D3D6 - первый аргумент
== - второй аргумент
"$UUID" - третий аргумент
] - четвёртый аргумент

Получится
[ "0E48-D3D6" "==" "$UUID" "]"
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Smithson
@Smithson
20+ лет админю
Вам надо стравнивать строки, для этого у bash отдельный синтаксис.
if [ "$a" -ne "$b" ]
Ответ написан
romy4
@romy4
Exception handler
Сравнение почти правильное
if [0E48-D3D6 == "$UUID"]; then

надо

if [ "0E48-D3D6" == "$UUID" ]; then
ВСЕГДА условия и операторы обрамляются пробелами
если справа в кавычках, то и слева в кавычках
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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