2015-10-21 78 views
1

的情況下在bash:情況下在bash: 「4號線:附近意外的標記'語法錯誤)'」

線4:附近意外的標記'語法錯誤)'

我試圖在Bash中使用命令case(在我的Raspberry Pi上),但是當我運行我的腳本時,Bash吐出了錯誤。我已經閱讀了許多教程,我認爲我和他們做了同樣的事情,但有些事情是不對的。

這裏是我的代碼:

#!/bin/bash 
case "$1" in 
     help) echo "You asked for help. Sorry, I'm busy." 
     *) echo "You didn't say anything. Try 'help' as the first argument." 
esac 

下面是輸出(文件名是newmkdir,我不帶參數運行它):

./newmkdir: line 4: syntax error near unexpected token `)' 
./newmkdir: line 4: ` *) echo "You didn't say anything. Try 'help' as the first argument."' 

我試圖讓我的腳本解釋help和然後讓其他東西輸出下一行。

(注意:這僅僅是一個glitched腳本示例該腳本沒有意義,甚至可能沒有什麼意義,它只是一個試驗。)

+4

在每種情況下,您都需要';;'。 – alvits

+4

您可能會發現[shellcheck](http://shellcheck.net)有用。 –

回答

3

您在每個模式的結尾缺少;;

#!/bin/bash 
case "$1" in 
     help) 
      echo "You asked for help. Sorry, I'm busy." 
      ;; 
     *) 
      echo "You didn't say anything. Try 'help' as the first argument." 
      ;; 
esac 

把它看作是編程語言中的break語句。它們是case的強制性規定。

+0

從技術上講,';;'在'esac'之前是可選的,但這是一個不好的理由。 –

+1

謝謝! ...我發佈了這個帖子之後,我意識到了tabb'問題',但無論如何要糾正它。 – HewwoCraziness

相關問題