Я пишу очень простое сравнение в сценарии оболочки Bash, но я никогда не получаю его правильно:
count = 0
if [ expr $count / 4 = 0 ]; then echo "yes"; else echo "no"; fi
всегда дает нет?
Если вы хотите вызвать программу expr, вы должны вызвать ее:
if [ $(expr $count / 4) = 0 ]; then echo "yes"; else echo "no"; fi
Однако Bash может сделать это самостоятельно:
if (( $count / 4 == 0 )); then echo "yes"; else echo "no"; fi
Вам необходимо использовать подстановка команд ($() или обратные метки), чтобы оценить выражение eval. Также используйте -eq для целочисленного сравнения :
$()
eval
-eq
if [ $(expr $count / 4) -eq 0 ]; then echo "yes"; else echo "no"; fi
Как насчет этого
[[ count/4 -eq 0 ]] && echo 'yes' || echo 'no'