Что значит ;; делать в sh?

Если я попытаюсь запустить a;;b в sh, я получаю эту ошибку:

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

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

28 голосов | спросил EKons 18 PMpTue, 18 Apr 2017 13:48:16 +030048Tuesday 2017, 13:48:16

1 ответ


47

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

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

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

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

ответил Stéphane Chazelas 18 PMpTue, 18 Apr 2017 13:49:53 +030049Tuesday 2017, 13:49:53

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132