Что делает ;; в sh?

Что делает ;; в sh?

Если я попытаюсь запустить a;;bsh, то получу следующую ошибку:

sh: <number>: Syntax error: ";;" unexpected

Если я попробую, a;;;bто получу ту же ошибку, а не ;;;вместо ;;, так что я думаю, что это ;;что-то значит, хотя я и не знаю, что именно.

Вот пример:

$ echo A;;echo B
sh: 1: Syntax error: ";;" unexpected
$ echo A;;;echo B
sh: 1: Syntax error: ";;" unexpected
$ echo A; ;echo B
sh: 1: Syntax error: ";" unexpected

Здесь вы можете видеть, что когда я использую ; ;вместо , ;;ошибка другая, относящаяся к тому факту, что я использовал ;without ранее команду. ;;похоже, это другой оператор, хотя я не знаю, к чему он относится.

решение1

;;разделяет операторы в конструкции case... esacв оболочках POSIX:

case foo in (a) cmd1; cmd2 ;; (b) cmd3; cmd4; esac

Чтобы узнать о команде, вы можете запустить man that-command. Если ваш пейджер — less, вы можете выполнить поиск на странице руководства, нажав /.

Здесь вы бы запустили man shи нашли ;;. Некоторые оболочки поддерживают другие операторы для разделения caseоператоров (например, ;&in ksh93/ zsh/ bash/ mksh, &|in zsh/ mksh, ;;&in bash).

Связанный контент