Що робить ;; робити в ш?


28

Якщо я спробую запустити a;;bш, я отримаю цю помилку:

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

Тут ви можете бачити, що коли я використовую ; ;замість ;;помилки, це інше, що стосується того, що я використовував ;без команди раніше. ;;начебто інший оператор, хоча я не знаю, що це стосується.


1
Неможливо здійснити пошук в Google через те ;;, і тут не знайшли дурпа.
EKons

3
Гуглі «ш подвійна точки з коми» ... stackoverflow.com/questions/16905183 / ...
Мура

@muru Хоча тут ще не розміщено, я думаю.
EKons

@ ΈρικΚωνσταντόπουλος Ось що SymbolHound є для symbolhound.com
Джо

Відповіді:


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).


1
Я щойно опублікував тут, тому що я думаю, що тут все одно має бути таке питання, оскільки тут це можна було б пояснити більш чітко, якщо хтось плутає.
EKons

2
Якщо звернень чимало, або ви не можете пам’ятати правила уникнення пошуку за допомогою less, іноді це зручно$ man bash|grep -C1 ';;'
розкуркулити

Ви не повинні мати , (перш ніж a)і b), і ви повинні ;;післяcmd4
Barmar

@Barmar, цей синтаксис є POSIX. В Bourne оболонки, ви повинні були опустити на (насправді, але ви все одно не потрібен , ;;перш ніж esac(хоча це не зашкодить).
Стефан Шазелас

Спасибі. Я не знав про ту зміну оболонки POSIX або про те, що остання ;;була необов’язковою.
Бармар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.