Я не уверен, как сделать if
с несколькими тестами в оболочке. У меня возникли проблемы написания этого сценария:Использование if elif fi в сценариях оболочки
echo "You have provided the following arguments $arg1 $arg2 $arg3"
if [ "$arg1" = "$arg2" && "$arg1" != "$arg3" ]
then
echo "Two of the provided args are equal."
exit 3
elif [ $arg1 = $arg2 && $arg1 = $arg3 ]
then
echo "All of the specified args are equal"
exit 0
else
echo "All of the specified args are different"
exit 4
fi
Проблема я получаю эту ошибку каждый раз, когда:
./compare.sh: [: отсутствует '] Команда»не найдена
Достаточно нескольких комментаторов предложили использовать [[вместо [но это делает ваш скрипт bash-specific. У вас будет меньше проблем с обслуживанием и переносимостью, если вы сможете придерживаться простого старого синтаксиса оболочки Bourne (sh). –