2014-11-18 4 views
0

Я не знаю, почему это не работает. Пожалуйста помоги!Bash Scripting if statement

#!/bin/bash 
clear 
echo "Enter an option" 
read $option 
if ("$option" == 1) then 
    echo "Blah" 
fi 

Я попытался как этот

if ("$option" -eq 1) then 

Я не могу понять, почему, если оператор не был запущен. Все, что я хочу сделать, это проверить, что пользователь вводил и что-то делать, в зависимости от введенного значения.

+1

Другой проблема с этим кодом является команда чтения должна быть 'чтения option'. –

ответ

0

Синтаксис для проверки равенства является:

if [[ $option == 1 ]]; then 
    echo "Blah" 
fi 

Или, для совместимости со старыми не-Баш оболочек:

if [ "$option" = 1 ]; then 
    echo "Blah" 
fi 

В любом одном, пробельные является важный. Не удаляйте пробелы вокруг квадратных скобок.

+1

'' 'использует одно' = 'для сравнения строк. – DanielGibbs

0

Bash if использует [ или [[ в качестве тестовых конструкций вместо скобок, которые используются на других языках.

0

Это не синтаксис для оператора if в bash. Попробуйте это:

if [ "$option" = "1" ]; then 
    echo "Blah" 
fi 
0

Я не знаю, где вы получили свой синтаксис от ... Попробуйте это:

if [ "$option" -eq 1 ]; then 

В оболочке, [ это команда, а не синтаксической конструкцией.

В качестве альтернативы, вы можете использовать арифметический контекст в Баше:

if ((option == 1)); then