Sintaks shell berbasis awalan. Ini memiliki klausa yang diperkenalkan oleh kata kunci khusus. Klausul tertentu harus disatukan.
Sebuah whilelingkaran dibuat satu atau lebih pengujian perintah:
test ; test ; test ; ...
dan dengan satu atau lebih perintah tubuh:
body ; body ; body ; ...
Sesuatu harus memberi tahu shell bahwa loop sementara dimulai. Itulah tujuan dari whilekata tersebut:
while test ; test ; test ; ...
Tapi kemudian, semuanya ambigu. Perintah mana yang merupakan awal dari tubuh? Sesuatu harus menunjukkan itu, dan itulah yang dilakukan doawalan:
do body ; body ; body ; ...
dan, akhirnya, sesuatu harus menunjukkan bahwa tubuh terakhir telah terlihat; kata kunci khusus donemelakukan itu.
Kata kunci shell ini tidak memerlukan pemisahan titik koma, bahkan pada baris yang sama. Misalnya, jika Anda menutup beberapa loop bersarang, Anda bisa melakukannya done done done ....
Sebaliknya, titik koma adalah antara ... test ; body ... jika mereka berada di jalur yang sama. Titik koma itu dipahami sebagai terminator: ia termasuk dalam test. Oleh karena itu, jika dokata kunci dimasukkan di antara mereka, kata itu harus berada di antara titik koma dan body. Jika berada di sisi lain dari titik koma, itu akan salah tertanam di dalam testsintaks perintah, daripada ditempatkan di antara perintah.
Sintaksis shell awalnya dirancang oleh Stephen Bourne, dan terinspirasi oleh Algol . Bourne sangat mencintai Algol sehingga dia menggunakan banyak makro C dalam kode sumber shell untuk membuat C terlihat seperti Algol. Anda dapat menelusuri sumber shell bertanggal 1979 dari Versi 7 Unix . Makro ada di mac.h, dan mereka digunakan di semua tempat. Misalnya ifpernyataan tersebut diberikan sebagai IF... ELSE... ELIF... FI.