2016-06-09 14 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修复 –