Shell 脚本中 case 语句中的 chmod ux 问题

Shell 脚本中 case 语句中的 chmod ux 问题

在此处输入图片描述

我想使用菜单 (exec、write、read) 授予文件权限。如果您仔细观察,我读到了值 B(文件的名称),然后我使用该case函数对该文件执行 1)exec / 2)write / 3)read 函数,并使用另一个case's。

我在这一行中遇到了错误:

chmod u-x $b" ; ls -l ; 

当我执行时.sh。为什么?我将附上错误截图。

在此处输入图片描述

答案1

你的case语句语法不正确。

case语句中,每个模式-动作对都需要以 结束,;;但您使用了一个;(在 之后ls -l),在本例中它类似于换行符。因此,shell 继续在下一行中使用相同的模式-动作对,发现2)并显示语法错误。

正确的语法是:

case "$c" in 
          1) chmod u+x "$b"; ls -l ;;

查看本教程对该声明有更多的了解case

还要注意,权限位语法之间不能有空格,即您需要输入u+x,而不是u + x

相关内容