почему эта программа сценария оболочки не работает

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".

1
задан 20 March 2016 в 08:34

2 ответа

Поэтому Вы делаете:

if [ expr $n % 2 -eq 0 ]

, Каким образом?

, поскольку

rem='expr $n % 2'

назначает переменную rem строкой expr $n % 2.

Вы нуждаетесь, управляете заменой:

rem=$(expr $n % 2)

Также использование bash собственный арифметический оператор вместо expr:

rem=$(( $n % 2 ))
2
ответ дан 7 December 2019 в 13:47
  • чтение использования создало в быстрой функции read -p "Enter one num" n

  • , предпочитают использовать $( . . .), одинарные кавычки не разворачивают команды. rem="$(expr $n % 2)"

  • Кавычка переменные при использовании их "$rem"

  • использование самое большее одна строка повреждения между if и then

    if [ "$rem" -eq 0 ] then

0
ответ дан 7 December 2019 в 13:47

Другие вопросы по тегам:

Похожие вопросы: