Comments 9
Хабр не показывает в статье то, что идёт до ката.

(цитата из буфера обмена не вставляется, кто хочет, может посмотреть текст в списке статей автора)
Так а break-то там в итоге зачем?
И никаких брейков тут не надо, не будь брейккером, заканчивается кейс двойной точкой с запятой
;;
Это понятно, что в норме он там не нужен — потому и возник вопрос, откуда всё-таки в коде взялся break и для чего его туда засунули. Конечно, есть вариант, что писал сишник, привыкший ставить брейки, но ведь могли быть и другие причины…
Все привыкли к башу как к данности, так что стоит лишний раз явно упомянуть: bash
!= sh
, и sh
просто не поддерживает ни кейс, ни многое другое башовое. Это так, просто дружеское напоминание тем, кто может споткнуться.
sh
просто не поддерживает ни кейс, ни многое другое башовое.
Эээ, вообще-то как раз поддерживает: 2.9.4.3 Case Conditional Construct. Башизмами в данной статье являются:
Нестандартные расширения переменных, не перечисленные в 2.6.2 Parameter Expansion.
Нестандартное окончание ветки
;;&
. POSIX допускает только;;
и;&
, причём второй вариант довольно новый, и много кем не поддерживается; например,dash
(sh
по умолчанию в Debian) знает только;;
.
А сам case
появился еще в Bourne Shell в Unix V7 (1979).
Интересный case