Если я пытаюсь запустить 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
Здесь вы можете видеть, что когда я использую ; ;
вместо ;;
ошибки разные, относящиеся к тому, что я использовал ;
без команды раньше. ;;
похоже, другой оператор, хотя я не знаю, к чему это относится.
;;
, и не нашли здесь обман.Ответы:
;;
разделяет операторы в конструкцииcase
...esac
в оболочках POSIX:Чтобы узнать о команде, вы можете запустить
man that-command
. Если ваш пейджер естьless
, вы можете искать на странице справочника, нажав /.Здесь вы будете бегать
man sh
и искать;;
. Некоторые оболочки поддерживают другие операторы для разделенияcase
операторов (например,;&
вksh93
/zsh
/bash
/mksh
,&|
вzsh
/mksh
,;;&
вbash
).источник
less
, это иногда удобно$ man bash|grep -C1 ';;'
(
доa)
иb)
, и вам нужно;;
послеcmd4
(
действительно, но вам все еще не нужно;;
раньшеesac
(хотя это не повредило).;;
было необязательным.