На этот вопрос уже есть ответ здесь:
#!/bin/bash
var=1
if [[ $var -eq 0 ]]
then
echo "No students"
elif [[ $var -eq 1 ]]
then
echo "1 student"
elif [[ $var -eq 2]]
then
echo "2 students"
elif [[ $var -eq 3 ]]
then
echo "3 students"
elif [[ $var -eq 4 ]]
then
echo "4 students"
else
echo "A lot of students"
fi
Я написал этот сценарий bash. Но он выдает следующую ошибку:
Failed test #1. Runtime error:
main.sh: line 11: syntax error in conditional expression
main.sh: line 12: syntax error near `then'
main.sh: line 12: `then'
Проблема elif [[ $var -eq 2]]
, это должно быть: elif [[ $var -eq 2 ]]
.
вопросы Интервала.
вещь состоит в том, когда она видит [[
, она ищет закрытие ]]
, и она не может найти его вместо этого, она видит 2]]
, который не имеет никакого значения.
case
был бы хороший выбор здесь для сокращения кода.
case $var in
0) echo "No students" ;;
1|2|3|4) echo "$var students" ;;
*) echo "A lot of students" ;;
esac