2012-12-02 50 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