В чем проблема в моем сценарии bash? [дубликат]

На этот вопрос уже есть ответ здесь:

#!/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'
-4
задан 28 June 2017 в 21:46

2 ответа

Проблема elif [[ $var -eq 2]], это должно быть: elif [[ $var -eq 2 ]].

вопросы Интервала.

вещь состоит в том, когда она видит [[, она ищет закрытие ]], и она не может найти его вместо этого, она видит 2]], который не имеет никакого значения.

9
ответ дан 3 November 2019 в 00:51

case был бы хороший выбор здесь для сокращения кода.

case $var in
  0) echo "No students" ;;
  1|2|3|4) echo "$var students" ;;
  *) echo "A lot of students" ;;
esac
5
ответ дан 3 November 2019 в 00:51

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

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