2015-10-21 41 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

相关问题