Взглянув с точки зрения программиста, оболочка script - это еще один язык программирования, где нужно учиться и соответствовать правилам языка. Тем не менее, я должен признать, что этот синтаксис - самый странный стиль, который я когда-либо видел на довольно часто используемом языке. Оболочка взяла этот синтаксис из более старого языка, из которого он сходит? Есть ли специальный синтаксис/смысл в синтаксисе?
В качестве примера, вот небольшой фрагмент, который я беру из другого сообщения в SO
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
check_status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
Посмотрев на это, во-первых, я вижу, что case заканчивается на esac, что является его обратным форматом (например, if, заканчивающимся на fi). Во-вторых, я понимаю, что за каждым случаем следует ). Достаточно справедливо, но почему мне нужно два ; в конце каждого утверждения? Я бы также сказал, что ) без сопровождающего ( уродливый.
Я ищу дополнительную информацию об историческом аспекте языка, но я также открыт по техническим причинам.