Взглянув с точки зрения программиста, оболочка 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
). Во-вторых, я понимаю, что за каждым случаем следует )
. Достаточно справедливо, но почему мне нужно два ;
в конце каждого утверждения? Я бы также сказал, что )
без сопровождающего (
уродливый.
Я ищу дополнительную информацию об историческом аспекте языка, но я также открыт по техническим причинам.