2012-12-02 71 views
0

我一直在收到此错误大约一个小时。它说:shell脚本中的if语句的语法错误

如果:表达式语法

当我尝试运行我的shell脚本。我无法找到代码中的问题,所以我缩短都记录下来,以这种简单的条件:

if [ $# -eq 0 ] 
then 
echo "ERROR - no arguments given" 
exit 1 
fi 

我期待所有在互联网上,这种语法似乎是完美无瑕的。所以为什么我仍然得到,如果表达式语法错误?

+1

什么是你的壳呢? –

+0

即时通讯不知道。我正在使用我学校管理的终端。有没有找到它的命令? –

回答

1

我想你使用csh/tcsh的,所以你必须写

if ($# == 0) then 
    echo "ERROR - no arguments given" 
    exit 1 
endif 

(使用bash脚本运行确定这里)

+0

hmmm idk你如何知道这一点,但非常感谢!其实第一部分是对的,但不是endif,我仍然需要fi。不知道为什么。我的教授教给我们错误的语法 –

+0

他可能教过你sh,你的错误是你使用了不同的shell。它们是相似的,但仍然有点像抱怨Prolog编译器不会接受C. – tripleee

+1

@Matt猜测它是因为它适用于bash,并且错误消息看起来像csh。但是,你的shell想让我好奇:你正在使用哪个系统和shell? – pbhd