Почему этот простой сценарий bash вызывает ошибку if / then / else?

Если я попытаюсь запустить этот скрипт:

clear echo -n "please enter a value" read num if [ "$num" -eq 8 ] then echo "you entered 8" else echo "the number you entered was not 8" 

Я получаю следующий вывод / ошибку:

введите значение5
./script.sh: строка 9: синтаксическая ошибка около неожиданного токена `else '
./script.sh: строка 9: else '

Почему не работает этот скрипт?

One Solution collect form web for “Почему этот простой сценарий bash вызывает ошибку if / then / else?”

Вам не хватает точки с запятой или новой строки после предложения if , и нет конца if блока.

 #!/bin/bash clear echo -n "please enter a value" read num if [ "$num" -eq 8 ] then echo "you entered 8" else echo "the number you entered was not 8" fi 

Некоторые другие предложения:

  • Сценарии должны начинаться с #! чтобы сообщить системе, какой интерпретатор использовать
  • Ваше сравнение [ "$num" -eq 8 ] представляет собой числовое сравнение. Если вы не уверены, что пользователь действительно будет вводить число, подумайте об использовании сравнения строк, [ 8 = "$num" ]
  • Вы можете вставить приглашение в инструкцию read , read -p "Please enter a value: " num
  • Это опечатка в разделе перенаправления руководства Bash?
  • stdin 'hop' над процессом?
  • Каково имя функции оболочки `> (tee copyError.txt> & 2)`?
  • bash while loop не печатает, что ожидается
  • Официальный список программ, которые будут включены в Linux?
  • Генератор паролей случайных CLI-файлов Bash Linux и `<`
  • Запустить сценарий в неинтерактивной оболочке?
  • Передача glob-выражений в функции / скрипты
  • Извлечение файлов .gz, содержащихся в папке
  • Как я могу управлять существующей удаленной оболочкой?
  • Предотвращение зависания при запуске скриптов python
  • Linux и Unix - лучшая ОС в мире.