2016-06-09 16 views
1
read A 
if [["$A" == 'Y' -o "$A" =='y']] 
then echo "YES" 
else echo "NO" 
fi 

條件我是很新的scripting.basically外殼,我試圖檢查,如果輸入的是Yy。 我收到以下錯誤,我無法調試。使用如果shellscripting

solution.sh: line 2: [[Y: command not found 

謝謝。

+0

給空間'[[' –

回答

3

你以後[[

丟失的空間,如果要像

if [[ "$A" == 'Y' || "$A" == 'y' ]] 

[[ ]] extended test command,像任何命令應該從別人用空格隔開

1

在方括號內添加適當的空格並在==之後:

read A 
if [ "$A" == 'Y' -o "$A" == 'y' ]; then 
    echo "YES"; 
else 
    echo "NO"; 
fi 

注意使用-o你應該使用test命令,它採用單括號

如果使用[[]],與雙括號,您必須使用||代替-o:後

read A 
if [[ "$A" == 'Y' || "$A" == 'y' ]]; then 
    echo "YES"; 
else 
    echo "NO"; 
fi 
+0

我是否必須使用;符號在這裏?即使我使用它或不使用它,我仍然收到錯誤。 solution.sh:第2行:條件表達式中的語法錯誤 solution.sh:第2行:'-o'附近的語法錯誤 solution.sh:第2行:if [[「$ A」=='Y'-o 「$ A」=='y']];然後' –

+0

@VaibhavSavala修復 –