LINUX.ORG.RU

Не могу разобраться в if в bash

 , ,


0

1

Есть такой кусок кода:

read $value_by_user

if ["$value_by_user" -gt "5"]; then
    echo что-то там
else
    echo что-то другое
fi

Пробовал писать условие в (( )), пробовал без скобок. На все случаи интерпретатор баша ругается. В данном конкретном случае: integer expression expected

При круглых скобках: syntax error in expression (error token is 5)

При квадратных скобках без обертывания 5 в кавычки: -gt unary operator expected



Последнее исправление: durambes (всего исправлений: 1)
-read $value_by_user
+read value_by_user
Spoofing ★★★★★
()

Пробел после [ и перед ], т.е. [ "$value_by_user" -gt "5" ], и еще read value_by_user

sudoapter
()
Последнее исправление: sudoapter (всего исправлений: 3)
Ответ на: комментарий от anonymous

if [[ $value_by_user -gt 5 ]]; then

Когда оператор сравнения целых чисел, тогда операнды у нас целые выражения, потому '$' тут не нужен, вообще можно записать например value_by_user*2

vodz ★★★★★
()
Ответ на: комментарий от vodz

Нет, просто мысли вслух, комментарий выше смотри. У автора эта конструкция работать все равно не будет, т.к. sh.

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