Я хочу дать права на файл с помощью меню (exec, write, read). Если вы внимательно посмотрите, я читаю значение B (имя файла), тогда я использую функцию case
, чтобы выполнить 1) exec / 2) write / 3) функцию чтения для этого файла с другими case
.
У меня ошибка в строке:
chmod u-x $b" ; ls -l ;
, когда я выполняю .sh
. Зачем? Я приложу скриншот с ошибкой.
!
Ваш case
оператор syatax не является правильным.
оператор In case
каждая пара действия шаблона должна быть закончена в ;;
, но Вы использовали сингл ;
(после ls -l
), который походит на новую строку в этом случае. Так, оболочка продолжает ту же пару действия шаблона в следующей строке, найденной 2)
и показанная синтаксическую ошибку.
правильный синтаксис был бы:
case "$c" in
1) chmod u+x "$b"; ls -l ;;
Проверка это учебное руководство для получения большей идеи о case
оператор.
Также примечание, что не должно быть никаких пробелов между синтаксисом бита полномочий т.е. необходимо поместить u+x
, не u + x
.