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