Pemberian variabel pada shell script bersifat ‘dynamic typing’ karena
shell script tidak mengenal adanya tipe data. Pada shell script dikenal
dua istilah variabel yaitu SYSTEM VARIABLE(SV) dan USER DEFINED VARIABLE
(UDV). SV adalah kumpulan variabel yang telah dideklarasikan secara otomatis
oleh shell, sedangkan UDV adalah variabel yang kita buat sendiri. Contoh dari
variabel SV adalah HOME, SHELL, RANDOM, OSTYPE, dan masih banyak yang lain.
Dalam membuat variabel ada beberapa aturan yang harus dipenuhi agar variabel
tersebut dianggap valid oleh shell, syntax untuk penamaan variabel adalah:
nama_variabel=NILAI
Perhatikan bahwa tidak ada spasi antara nama_variabel dengan tanda ‘=’ juga
dengan NILAI. Ini adalah suatu KEHARUSAN. Berikut adalah beberapa aturan
tentang penamaan variabel:
1. Variabel HARUS diawali ABJAD atau _ (tidak dapat diawali angka)
2. Variabel dapat terdiri dari karakter alphanumeric dan _
3. Variabel bersifat CaSe SeNsItIvE
4. Jika isi variabel mengandung spasi sebaiknya apit dengan tanda petik (’)
atau (”).
5. Gunakan escape character (\) untuk karakter non-literal
seperti (\’, \$, \?, dll)
Untuk mencetak nilai dari suatu variabel digunakan tanda dollar ($) didepan
nama variabel, contoh:
bash-2.04$ a=’Hello ‘
bash-2.04$ b=’World!’
bash-2.04$ echo $a$b
Hello World!
bash-2.04$ echo ${a}${b}
Hello World!
Cara yang terakhir adalah cara yang disarankan untuk menghindari kesalahan
dalam melakukan concat string.
Jika anda ingin menyimpan output dari suatu perintah kedalam suatu variabel
gunakan tanda backtick (`). Contoh, kita akan melihat isi direktori home
lalu menyimpannya dalam variabel isi_home.
bash-2.04$ isi_home=`ls /home`
bash-2.04$ echo $isi_home
Dalam shel juga terdapat SPECIAL VARIABEL untuk mendapatkan exit status dari
suatu program. Pada UNIX setiap program dinyatakan selesai TANPA error
apabila exit statusnya SAMA DENGAN 0. Selain itu maka program tersebut
selesai tapi dengan error. Variabel tersebut adalah “$?”.
bash-2.04$ ls /home
bash-2.04$ echo $?
0
bash-2.04$ ls /file/ngawur
bash-2.04$ echo $?
2
Angka 2(TIDAK SAMA DENGAN 0) menunjukkan bahwa program ls keluar dengan
status terjadi error. Penggunaan exit sangat penting saat kita membuat
shell script yang kompleks, dimana didalamnya kita banyak menggunakan
program lain.