Shell -- A hard rigid usually calcareous covering or support of an animal: the hard or though often thin outer covering of an egg (as of a bird or reptile) -- Merriam Webster Online Dictionary
Shell (baca: Linux Shell), selain sebagai command interpreter, juga bisa dimanfaatkan sebagai bahasa pemrograman yang powerful di Linux. Sebagai command interpreter, shell bisa dimanfaatkan sebagai penghubung antara user dengan OS kernel untuk mengeksekusi perintah (UNIX command).
Sebagai bahasa pemrograman, program shell (baca: script) bisa ditumpangkan pada aplikasi untuk dipakai bersama dengan compiled binary, tool, utilities, atau lainnya sehingga membentuk sebuah aplikasi yang mempunyai hubungan erat antara OS kernel dengan program. Dengan bahasa sedernana, memadu-padankan UNIX command dan program.
Ada beberapa macam shell yang tersedia, dan yang paling terkenal adalah CSH (singkatan dari C-shell), dan BASH atau SH (singkatan dari Bourne-again shell), shell script yang sering saya gunakan. C-shell dibuat oleh Bill Joy saat menjadi mahasiswa master UC Berkeley, Bourne-again shell, sesuai namanya, dibuat oleh Stephen Bourne tahun 1978. Sebagai catatan: beberapa mengatakan bahwa C-shell sudah tidak direkomendasikan lagi karena ada beberapa masalah--seperti yang publish oleh Usenet post tahun 1993.
Bagi saya, kelebihan utama shell script adalah: quick programming. Tanpa harus membuat program yang rumit dan kompleks, shell mampu memjalankan task yang rumit dan kompleks, tapi dengan konsekuensi computing power rendah (lambat). Dengan begitu, shell sangat cocok digunakan untuk system administrative task, maupuan sistem-sistem yang harus dirun berulang kali (repetitive), seperti otomatisasi, task-task rutin, cek status, dan lain-lain. Walaupun tidak dipungkiri shell juga bisa digunakan untuk kerpeluan lain semisal: data parsing, editing, bahkan arithmetic operation.
Pada proses desain chip, shell script sering dimanfaatkan untuk proses kompilasi, menjalankan simulasi, sampai analisa data (parsing) yang dibutuhkan untuk dilakukan berulang-ulang menggunakan loop utility pada shell. Sebagai contoh untuk sebuah desain RTL, kita ingin melakukan kompilasi dengan opsi berbeda-beda tiap kali compile, memanggil program simulator seketika kompilasi selesai, dan melakukan analisa terhadap hasil simulasi seketika simulasi selesai. All done by one!
Contoh fitur favorit shell yang sering saya pakai di pekerjaan verifikasi adalah input argument. Berikut contohnya:
case $1 in
-x) "Argument pertama x.";;
-y) "Argument kedua y.";;
esac
case $2 in
-x) "Argument pertama x.";;
-y) "Argument kedua y.";;
esac
Script diatas akan mengeluarkan kata "Argument pertama x. Argument kedua y." jika dirun dengan opsi:
% ./arg.sh x y
Mudah bukan? Kita bahkan bisa membuat compilation option berbagai macam hanya dengan beberapa line code. Kemudahan untuk dipelajari (quick programming), fleksibilitas, dan kemampuannya sebagai command interpreter menjadi alasan utama kenapa saya menyukai shell script ini. (yayan)
Untuk memulai mencoba shell scripting, tunggu: Tutorial Shell Scripting bagi Pemula.
Bahan baccan: