echo "enter one no"
read n
rem='expr $n % 2'
if [ $rem -eq 0 ]
then
echo "Number $n is even"
else
echo "Number $n is odd"
fi
при выполнении этой программы удар показывает сообщение как "слишком много arguement".
Поэтому Вы делаете:
if [ expr $n % 2 -eq 0 ]
, Каким образом?
, поскольку
rem='expr $n % 2'
назначает переменную rem
строкой expr $n % 2
.
Вы нуждаетесь, управляете заменой:
rem=$(expr $n % 2)
Также использование bash
собственный арифметический оператор вместо expr
:
rem=$(( $n % 2 ))
чтение использования создало в быстрой функции read -p "Enter one num" n
, предпочитают использовать $( . . .)
, одинарные кавычки не разворачивают команды. rem="$(expr $n % 2)"
Кавычка переменные при использовании их "$rem"
использование самое большее одна строка повреждения между if
и then
if [ "$rem" -eq 0 ]
then