#shell #scripting
#оболочка #сценарии
Вопрос:
Для следующего скрипта
#!/bin/sh
count1=0
noOfArg=0
checkOtherParam()
{
echo $parameter
return 4
}
if($count1 eq $noOfArg)
then
echo "Yes"
else
echo "No
"
fi
~
Я получаю сообщение об ошибке
. /sample.sh: 0: не найдено Нет
пожалуйста, дайте мне знать, в чем проблема
Ответ №1:
Я бы написал сравнение следующим образом
if (($count1 == $noOfArg))
then
...
fi
Приведенное выше арифметическое сравнение, в отличие от условного сравнения, выполняемого
if [ $count1 -eq $noOfArg ]
then
...
fi
Однако в этом случае я предполагаю, что они оба приведут к одному и тому же результату.
Ответ №2:
Это ваше использование круглых скобок в операторе if. Это неправильный синтаксис bash. Здесь это исправлено (без таинственной неработающей функции checkOtherParam):
#!/bin/sh
count1=0
noOfArg=0
if [ $count1 -eq $noOfArg ]
then
echo "Yes"
else
echo "No"
fi
Ответ №3:
if($count1 eq $noOfArg)
должно быть
if [ $count1 -eq $noOfArg ]
Ответ №4:
вы также можете использовать case/esac
case "$count" in
"$noOfArg" ) echo "yes";;
*) echo "no";;
esac