Shell脚本:if:表达式语法错误
我有一个简单的if循环,它在一台服务器上工作,但在另一台服务器上不工作。我可以在myscript.log文件中搜索单词Shell脚本:if:表达式语法错误,shell,if-statement,grep,Shell,If Statement,Grep,我有一个简单的if循环,它在一台服务器上工作,但在另一台服务器上不工作。我可以在myscript.log文件中搜索单词 #!/bin/ksh ./myscript.sh install $2 $3 $4 sleep 5 if grep -q SUCCESSFUL myscript.log then echo "Install is good" else echo "Error occured during Install" fi 输出: if: Expression Syntax.
#!/bin/ksh
./myscript.sh install $2 $3 $4
sleep 5
if grep -q SUCCESSFUL myscript.log
then
echo "Install is good"
else
echo "Error occured during Install"
fi
输出:
if: Expression Syntax.
脚本之外的Grep:
mymachine:~>grep SUCCESSFUL myscript.log
Install is SUCCESSFUL
错误:
if:表达式语法
表明您使用的shell不是的变体
编写条件语句的另一种方法是:
grep -q SUCCESSFUL myscript.log && echo "Install is good" || echo "Error occured during Install"
(而不是
if
…fi
循环。)文件中的行尾是否为非本机?要缩小问题,试着用true
替换grep
表达式,看看是否有效。echo$SHELL怎么说?@devnull:echo$SHELL
输出是/usr/local/bin/tcsh
@rkyser:I用true
替换了grep
。但是我还是得到了同样的错误if:Expression语法。
为了简单起见,我刚刚给出了echo语句。但是我的内部有一些复杂的代码。因此上面没有if的代码可能对我不起作用