Shell脚本:if:表达式语法错误

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.

我有一个简单的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.
脚本之外的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的代码可能对我不起作用