我想使用菜单 (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
。