LINUX.ORG.RU

bash unexpected operator

 


0

1
run=$(df -h | grep /dev/mapper/U-etc |awk '{print$1}')

if [ "$run" == "/dev/mapper/U-etc" ];
then
   echo "ok"
else
   echo "bad"
fi

пишет ошибку /dev/mapper/U-etc: unexpected operator
подскажите что можно сделать

/dev/mapper/U-etc взять в кавычки?

Pyzia ★★★★★
()
Ответ на: комментарий от legolegs
none                   1025992       100   1025892   1% /dev/shm
none                   1025992       360   1025632   1% /var/run
none                   1025992         0   1025992   0% /var/lock
none                   1025992         0   1025992   0% /lib/init/rw
tmpfs                   204800     15188    189612   8% /home
/dev/mapper/U-etc        99150      5718     88312   7% /etc/etc
vbox
() автор топика
Ответ на: комментарий от vbox

Хз, должно работать. Даже в цигвине работает. Ищи ошибки, опечатки.Может какая-то экзотическая система?

legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)
Ответ на: комментарий от vbox
$ DEV="/dev/mapper/U-etc"
$ if echo "$DEV " | grep -q "^$DEV\s"; then echo "Ok"; else echo "Bad"; fi
Ok


Что не так?

bormant ★★★★★
()

/dev/mapper/U-etc: unexpected operator

«==» — это bash-изм, sh сотоварищи может придерживаться только классического «=».
Собственно, об этом был первый ответ в теме.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
if [[ "$run" == "/dev/mapper/U-etc" ]]
then
   echo "ok"
else
   echo "bad"
fi

Добавь скобки.

PunkoIvan ★★★★
()

Никогда не пиши shell-скрипты, это просто не твое.

df /dev/mapper/U-etc>&/dev/null
if [ $? -eq 0 ]; then
  echo ok
else
  echo bad
fi

kawaii_neko ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.