Kabuk sözdizimi önek tabanlıdır. Özel anahtar kelimeler tarafından tanıtılan cümlecikleri vardır. Bazı maddeler birlikte gitmeli.
Bir while
döngü bir veya daha fazla test komutundan oluşur:
test ; test ; test ; ...
ve bir veya daha fazla vücut komutuyla:
body ; body ; body ; ...
Bir şey kabuğa bir süre döngüsünün başladığını söylemek zorunda. while
Kelimenin amacı budur :
while test ; test ; test ; ...
Ama sonra, işler belirsizdir. Bedenin başlangıcı hangi komuttur? Bir şey bunu belirtmek zorundadır, ve do
önek böyle yapar:
do body ; body ; body ; ...
ve son olarak, bir şey son vücudun görüldüğünü belirtmek zorundadır; özel bir anahtar kelime done
bunu yapar.
Bu kabuk anahtar kelimeler, aynı satırda bile noktalı virgül ayırma gerektirmez. Örneğin, birkaç iç içe döngüyü kapatırsanız, sadece sahip olabilirsiniz done done done ...
.
Aksine, noktalı virgül aynı satırdalarsa arasındadır ... test ; body ...
. Bu noktalı bir sonlandırıcı olduğu anlaşılmaktadır: Birlikte ait test
. Bu nedenle, bunlar do
arasına bir anahtar kelime girilmişse, noktalı virgül ile body
. Noktalı virgülün diğer tarafında olsaydı test
, komutlar arasına yerleştirilmek yerine yanlış bir şekilde komutun sözdiziminin içine gömülürdü.
Kabuk sözdizimi aslen Stephen Bourne tarafından tasarlandı ve Algol'dan ilham aldı . Bourne Algol'ü o kadar çok severdi ki, C'nin Algol gibi görünmesi için kabuk kaynak kodunda birçok C makrosu kullandı. Sen edebilirsiniz Versiyon 7 Unix'den 1979-tarihli kabuk kaynakları taramak . Makrolar içeridedir mac.h
ve her yerde kullanılırlar. Örneğin if
ifadeler IF
... ELSE
... ELIF
... olarak işlenir FI
.