2. Linux untuk Pemula - pemrograman shell
5. Pemakaian Variabel
Secara sederhana variabel adalah pengenal
(identifier) berupa satuan dasar penyimpanan yang isi atau nilainya
sewaktu-waktu dapat berubah baik oleh eksekusi program (runtime program)
ataupun proses lain yang dilakukan sistem operasi. dalam dokumentasi ini saya
membagi variabel menjadi 3 kategori:
1.
Environment Variable
2.
Positional Parameter
3.
User Defined Variable
atau variabel lingkungan yang digunakan khusus oleh shell atau
system linux kita untuk proses kerja system seperti variabel PS1, PS2, HOME,
PATH, USER, SHELL,dsb...jika digunakan akan berdampak pada system, misalkan variabel PS1 yang digunakan untuk
mengeset prompt shell pertama yaitu prompt tempat anda 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 ">"). anda dapat mengeset
PS1 dan PS2 seperti berikut.
simpan dahulu isi PS1 asli system anda, sehingga nanti dapat
dengan mudah dikembalikan
[fajar@linux$]PS1LAMA=$PS1
sekarang masukkan string yang diinginkan pada
variabel PS1
[fajar@linux$]PS1="Hi
ini Promptku!"
Hi ini
Promptku!PS2="Lengkapi dong ? "
maka prompt pertama dan kedua akan
berubah, untuk mengembalikan PS1 anda ke prompt semula ketikkan perintah
[fajar@linux$]PS1=$PS1LAMA
Jika
anda ingin 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:
[fajar@linux$]PS1="[\t][\u@\h:\w]\$"
agar prompt shell hasil konfigurasi anda dapat tetap berlaku
(permanen) sisipkan pada file .bashrc atau .profile
atau 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..lebih jelasnya lihat contoh script berikut :
#!/bin/bash
#argumen1
echo $1 adalah salah satu $2 populer di $3
Hasilnya
[fajar@linux$]./argumen1 bash shell linux
bash adalah salah satu shell populer di linux
ada 3 argumen yang disertakan pada script argumen1 yaitu bash, shell,
linux,
masing2 argumen akan disimpan pada variabel 1,2,3 sesuai posisinya. variabel spesial lain
yang dapat digunakan diperlihatkan pada script berikut:
#!/bin/bash
#argumen2
clear
echo "Nama script anda : $0";
echo
"Banyak argumen : $#";
echo
"Argumennya adalah: $*";
Hasilnya:
[fajar@linux$]./argumen
1 2 3 empat
Nama script
anda : ./argumen
Banyak
argumen : 4
Argumennya
adalah : 1 2 3 empat
5.3. User Defined Variable
atau variabel yang didefinisikan sendiri oleh
pembuat script sesuai dengan kebutuhannya, beberapa hal yang perlu diperhatikan
dalam mendefenisikan variabel adalah:
- 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..
untuk mengeset nilai variabel gunakan operator assignment (pemberi
nilai)"=", contohnya :
myos="linux" #double-quoted
nama='pinguin'
#single-quoted
hasil=`ls -l`;
#back-quoted
angka=12
kalau anda perhatikan ada 3 tanda kutip yang kita gunakan 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 (double-quoted), bash menerjemahkan sebagai
perintah yang akan dieksekusi, contohnya:
#!/bin/bash
hapus=`clear`;
isi=`ls -l`;
#hasil dari perintah ls -l disimpan di variabel isi
#hapus layar
echo $hapus
#ls -l
echo $isi;
Hasilnya: silahkan dicoba sendiri
Untuk lebih jelasnya lihat contoh berikut:
#!/bin/bash
#varuse
nama="fajar"
OS='linux'
distro="macam-macam,bisa
slackware,redhat,mandrake,debian,suse,dll"
pc=1
hasil=`ls
-l $0`
clear
echo-e
"Hi $nama,\npake $OS\nDistribusi, $distro\nkomputernya, $pc buah"
echo "Hasil ls -l $0 adalah =$hasil"
Hasilnya:
[fajar@linux$]./varuse
Hi fajar,pake
linux Distribusi,macam-macam, bisa slackware,redhat,mandrake,debian,suse,dll
komputernya,
1 buah
Hasil ls
-l ./varuse adalah -rwxr-xr-x 1 fajar users 299 Nov 21 06:24 ./varuse
untuk operasi matematika ada 3 cara yang
dapat anda gunakan, dengan statement builtin let atau expr atau perintah subtitusi seperti contoh berikut :
#!/bin/bash
#mat1
a=10
b=5
#memakai let
let jumlah=$a+$b
let kurang=$a-$b
let kali=$a*$b
let bagi=$a/$b
#memakai expr
#bagi=expr
$a / $b
#memakai
perintah subtitusi $((ekspresi))
mod=$(($a%$b)) #sisa pembagian
echo
"$a+$b=$jumlah"
echo
"$a-$b=$kurang"
echo
"$a*$b=$kali"
echo
"$a/$b=$bagi"
echo
"$a%$b=$mod"
Hasilnya:
[fajar@linux$]./mat1
10+5=15
10-5=5
10*5=50
10/5=2
10%5=0
fungsi expr begitu berdaya guna baik untuk operasi
matematika ataupun string contohnya:
[fajar@linux$]mystr="linux"
[fajar@linux$]expr length $mystr
5
Mungkin anda bertanya - tanya, apakah bisa variabel yang akan
digunakan dideklarasikan secara eksplisit dengan tipe data tertentu?, mungkin
seperti C atau pascal, untuk hal ini oleh Bash disediakan statement declare dengan opsi -i hanya untuk data integer
(bilangan bulat). Contohnya:
#!/bin/bash
declare -i angka
angka=100;
echo $angka;
apabila variabel yang dideklarasikan menggunakan declare -i ternyata anda beri
nilai string (karakter), maka Bash akan mengubahnya ke nilai 0, tetapi jika
anda tidak menggunakannya maka dianggap sebagai string.
Comments
Post a Comment
thanks