VARIABEL
VARIABEL • • • •
Pengenal (identifier) berupa satuan dasar penyimpanan Isi atau nilainya sewaktu-waktu dapat berubah oleh : - eksekusi program (runtime program) - proses lain yang dilakukan sistem operasi Sintaxnya sebagai berikut : VARIABLE_NAME=VALUE Akses nilai pada variabel menggunakan tanda dollar “$” Contoh : VARIABLE1=Value echo “My variable holds: $VARIABLE1” Hasilnya : My variable holds: Value
Variabel dibagi menjadi 3 kategori : 1. Environment Variable 2. Positional Parameter 3. User Define Variable
Environment Variable
• Variabel lingkungan digunakan khusus oleh shell atau system linux untuk proses kerja system seperti variabel PS1, PS2, HOME, PATH, USER, SHELL,dsb. • Jika digunakan akan berdampak pada system, misalkan - variabel PS1 digunakan mengeset prompt shell pertama yaitu prompt tempat mengetikkan perintah - perintah shell (defaultnya "\s-\v\$"), - PS2 untuk prompt pelengkap perintah, prompt ini akan ditampilkan jika perintah yang dimasukkan dianggap belum lengkap oleh shell (defaultnya ">"). - mengeset PS1 dan PS2 seperti berikut. menyimpan isi PS1 aslinya system, sehingga nanti dapat dengan mudah dikembalikan
$PS1LAMA=$PS1
memasukkan string yang diinginkan pada variabel PS1 $PS1="Hi ini Promptku!" Hi ini Promptku!PS2="Lengkapi dong ? " maka prompt pertama dan kedua akan berubah, untuk mengembalikan PS1 ke prompt semula menggunakan perintah $PS1=$PS1LAMA mengkonfigurasi prompt shell, bash telah menyediakan beberapa backslash karakter diantaranya adalah: \a ASCII bell character (07) \d date dengan format "Weekday Month Date" (misalnya "Tue May 26") \e ASCII escape character (033) \H hostname (namahost) \n newline (karakter baru) \w Direktory aktif
\t time dalam 24 jam dengan format HH:MM:SS dll man bash:-) contoh pemakaiannya: $PS1="[\t][\u@\h:\w]\$" agar prompt shell hasil konfigurasi tetap berlaku (permanen) sisipkan pada file .bashrc atau .profile
Positional Parameter • Parameter posisi yaitu variabel yang digunakan shell untuk menampung argumen yang diberikan terhadap shell baik berupa argumen waktu sebuah file dijalankan atau argumen yang dikirim ke subrutin. • variabel yang dimaksud adalah 1,2,3,dst. contoh script berikut : #!/bin/bash #argumen1 echo $1 adalah salah satu $2 populer di $3
Hasilnya $./argumen1 bash shell linux bash adalah salah satu shell populer di linux Variabel spesial lain diperlihatkan pada script berikut: #!/bin/bash #argumen2 clear echo "Nama script anda : $0"; echo "Banyak argumen : $#"; echo "Argumennya adalah: $*"; Hasilnya: $./argumen2 1 2 3 Nama script anda Banyak argumen Argumennya adalah
empat : ./argumen2 : 4 : 1 2 3 empat
User Defined Variable Variabel yang didefinisikan sendiri oleh pembuat script sesuai dengan kebutuhannya. •
• Yang perlu diperhatikan dalam mendefinisikan variabel: - dimulai dengan huruf atau underscore - hindari pemakaian spesial karakter seperti *,$,#,dll... - bash bersifat case sensitive, maksudnya membedakan huruf besar dan kecil, a berbeda dengan A, nama berbeda dengan Nama, NaMa,dsb.. • Mengeset nilai variabel dengan operator assignment (pemberi nilai) "=", contohnya : myos="linux" #double-quoted nama='pinguin' #single-quoted hasil=`ls -l`; #back-quoted angka=12
Ada 3 tanda kutip yang digunakan untuk memberikan nilai string ke suatu variabel, adapun perbedaannya adalah: • dengan kutip ganda (double-quoted), bash mengizinkan kita untuk menyisipkan variabel di dalamnya. contohnya: #!/bin/bash nama="pinguin" kata="Hi $nama, apa khabarmu" #menyisipkan variabel nama echo $kata;
Hasilnya: Hi pinguin, apa khabarmu
• dengan kutip tunggal (single-quoted), akan ditampilkan apa adanya. contohnya: #!/bin/bash nama="pinguin" kata='Hi $nama, apa khabarmu' #menyisipkan variabel nama echo $kata;
Hasilnya: Hi $nama, apa khabarmu
• dengan kutip terbalik, bash menerjemahkan sebagai perintah yang akan dieksekusi, contohnya: #!/bin/bash hapus=`clear`; isi=`ls -l`; #hasil dari perintah ls -l variabel isi #hapus layar echo $hapus #ls -l echo $isi;
disimpan di
Hasilnya: menampilkan seluruh file dalam direktori aktif
Latihan 1. Apa keluaran dari program berikut? #!/bin/bash a=225 hello=$a echo hello echo $hello echo $(hello) echo “$hello” hello=“A B C D” echo $hello echo “$hello“
2. Apa keluaran dari program berikut? #!/bin/bash echo "$uninitialized" let "uninitialized += 5" echo "$uninitialized"