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