Shell script adalah suatu file yang berisi perintah-perintah yang harus dikerjakan oleh Shell. Perintah dalam suatu script bisa berupa perintah yang dapat diberikan dari prompt atau perintah kendali alir (Flow Control Commands). Perintah kendali alir adalah perintah untuk mengatur urutan eksekusi perintah-perintah dalam suatu script. Perintah kendali alir terbagi dalam dua kelompok, yaitu pencabangan dan pengulangan.
Pengantar Shell Script
> Membuat Shell Script
File script dapat dibuat dengan menggunakan teks editor seperti misalnya vi, pico, joe, gedit, kedit dll. Setiap file script biasanya diawali dengan baris seperti ini : #!/bin/bash yang artinya script di bawah baris tersebut akan dijalankan dengan interpreter /bin/bash. Untuk menandai baris komentar gunakan tanda "#" pada awal baris.
Contoh :
$ cat > myscript
#!/bin/bash
# ini adalah program pertama saya
# baris yang diawali dengan "#" adalah baris komentar
# dan tidak akan dieksekusi oleh shell
who
ls -l myscript
[Ctrl]+[D]
> Menjalankan Shell Script
Script dijalankan seperti executable file dengan cara mengetikkan nama file pada prompt.
dua hal yang harus diperhatikan dalam menjalankan script, yaitu :
1. Direktori tempat script berada harus termasuk dalam search PATH
Gunakan perintah echo $PATH untuk melihat search PATH yang berlaku saat ini
2. File script harus memiliki ijin akses (permission) r dan x.
Ubah dengan perintah chmod jika perlu !
Contoh :
$ echo $PATH
/usr/local/bin:/bin:/usr/bin
$ cd
$ pwd
/home/badu
$ cat myscript
who
ls -l myscript
$ ls –l myscript
-rw-r--r-- 1 badu imt 16 Feb 23
$ myscript
bash : myscript : command not found file myscript tidak dapat
ditemukan oleh shell
$ PATH=$PATH:$HOME memasukkan direktori tempat
myscript berada ke dalam
PATH
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/home/badu
$ myscript
bash : /home/badu/myscript : Permission
denied
file myscript tidak bisa
dieksekusi
$ chmod +x myscript ditambahkan hak eksekusi
$ ls -l myscript
-rwxr-xr-x 1 badu imt 16 Feb 23
$ myscript
badu ttyp0 Mar 01
-rwxr-xr-x 1 badu imt 16 Feb 23
Variabel
Variabel merupakan nama yang mewakili suatu harga string. Nama variabel harus diawali dengan alfabet (a..z, A..Z) atau garis bawah/underscore (_) dan tidak boleh diawali dengan angka.
Contoh :
1. Penamaan variabel yang benar
Nama
hari
_jumlah
2. Penamaan variabel yang salah
5hari
2jam
> Menyimpan Harga Variabel
Bentuk umum: Nama_Var=Harga
Keterangan:
Tidak boleh ada spasi di kiri dan kanan "=".
Contoh :
$ jumlah=1
$ temp=/usr/unyil/temp
> Menampilkan Harga Variabel
Perintah echo digunakan untuk menampilkan nilai yang disimpan dalam suatu variabel.
Bentuk umum : echo $Nama_Var
Keterangan:
$ merupakan karakter khusus bagi shell yang menyatakan substitusi variabel.
$Nama_Var berarti substitusi harga yang disimpan dalam variabel bernama Nama_Var pada
posisi tersebut.
Contoh :
$ echo $jumlah
1
$ echo $temp
/usr/unyil/temp
8.2.3. Menghapus Variabel
Caranya : isi dengan NULL
Contoh :
$ nama= atau
$ nama='' atau
$ nama="" atau
$ unset nama
Parameter
> Parameter Posisi (Positional Parameter)
Variabel yang diketikkan pada baris perintah.
Parameter posisi : $0, $1, $2 ... $9
$ perintah parameter1 parameter2 ...
Contoh :
$ cat tetangga
who | grep $1
$ who
unyil ttyp03 Feb 16
usro ttyp09 Feb 16
$ tetangga unyil
unyil ttyp03 Feb 16
program tetangga menjadi who | grep unyil
> Parameter Khusus (Special Parameter)
Variabel yang mempunyai arti khusus bagi shell dan sudah ditentukan oleh shell.
Yang termasuk dalam parameter khusus diantaranya : $#, $*, $@
1. $#
Digunakan untuk menyimpan jumlah parameter yang diketikkan pada baris perintah.
Contoh :
$ cat > arg
echo Nama program = $0
echo Jumlah argumen = $#
echo Argumen1=:$1: Argumen2=:$2: Argumen3=:$3:
[Ctrl]+[D]
$ arg a b c
Nama program = arg
Jumlah argumen = 3
Argumen1=:a: Argumen2=:b: Argumen3=:c:
$ arg
Nama program = arg
Jumlah argumen = 0
Argumen1=:: Argumen2=:: Argumen3=::
$ arg "a b c"
Nama progarm = arg
Jumlah argumen = 1
Argumen1=:a b c: Argumen2=:: Argumen3=::
2. $*
Digunakan untuk menyimpan nilai semua parameter yang diketikkan pada baris perintah.
Contoh :
$ cat > arg2
echo Jumlah argumen = $#
echo yaitu :$*:
[Ctrl]+[D]
$ arg2 a b c
Jumlah argumen = 3
yaitu :a b c:
$ arg2
Jumlah argumen = 0
yaitu ::
3. $@
$0 $1 $2
Fungsinya sama dengan $* kecuali bila dalam kutip ganda ("$@") akan menempatkan setiap argumen posisi dalam kutip ganda.
Contoh:
$ cat > arg3
echo Jumlah argumen = $#
for arg in "$*"
do
echo $arg
done
[Ctrl]+[D]
$ arg3 a b c
Jumlah argumen = 3
a b c
$ arg3 "a b" c
Jumlah argumen = 2
Abc
4. Mengganti "$*" dengan "$@"
Contoh :
$ cat > arg4
echo Jumlah argumen = $#
for arg in "$@"
do
echo $arg
done
[Ctrl]+[D]
$ arg4 a b c
Jumlah argumen = 3
abc
$ arg4 "a b" c
Jumlah argumen = 2
a b
c
> Pengutipan
Karakter khusus adalah karakter yang mempunyai fungsi khusus bagi shell.
Contoh karakter khusus :
? : substitusi nama file
* : substitusi nama file
` : substitusi perintah
$ : substitusi variabel
Pengutipan (quoting) berfungsi untuk mengabaikan fungsi dari karakter khusus.
Terdapat tiga macam pengutipan :
1. Backslash (\)
Hal 44 / 93 Modul Pelatihan Linux Fundamental – InfoSolusi
Contoh :
$ echo >
bash: syntax error near unexpected token '>'
$ echo \> > tidak lagi dianggap sebagai karakter pembelokan
2. Kutip Tunggal (' ')
Fungsi : mengabaikan semua karakter khusus di dalamnya, seperti newline, tabs, spasi
Contoh :
$ echo satu dua tiga
satu dua tiga
$ echo 'satu dua tiga'
satu dua tiga
3. Kutip Ganda (" ")
Fungsi : mirip dengan kutip tunggal kecuali tidak mengabaikan :
$ (substitusi variabel)
Back quote/kutip balik (`)
Backslash (\)
Contoh :
$ x=satu
$ echo $x
satu
$ echo '$x'
$x
$ echo "$x"
Satu
> Kutip Balik
ungsinya untuk menjalankan perintah yang ada di dalamnya serta menyisipkan standard
output-nya pada posisi tersebut (command substitution).
Bentuk umum : `perintah`
Contoh :
$ echo Hari ini : `date`
Hari ini : Tue Feb 16 09:34:40 JAVT 1997
> Substitusi Nama File
Karakter Arti
? Match satu karakter
* Match semua karakter
[ ... ] Match pilihan karakter
Contoh :
$ ls -l
total 10
-rw-r--r-- 1 badu imt 20 Mar 12 1999 Test
-rw-r--r-- 1 badu imt 38 Mar 12 1999 cetak
-rw-r--r-- 1 badu imt 18 Mar 12 1999 test
-rw-r--r-- 1 badu imt 18 Mar 12 1999 test1
-rw-r--r-- 1 badu imt 20 Mar 12 1999 test2
$ ls test?
test1 test2
$ ls *
Test cetak test test1 test2
$ ls [Tt]est*
Test test test1 test2
Input dan Output
> read
Fungsi : untuk membaca data dari keyboard atau file.
Bentuk umum :
read var1 var2 ... varn
Keterangan :
kata pertama di-assign ke var1
, kata kedua ke var2 dan seterusnya.
jika jumlah variabel dalam list lebih sedikit dari jumlah data yang dibaca maka sisa baris disimpan dalam variabel terakhir (varn).
Contoh :
1. Membaca data nama dan alamat dari keyboard
$ read nama alamat
dudi depok
2. Menampilkan isi variabel nama
$ echo $nama
Dudi
3. Menampilkan isi variabel alamat
$ echo $alamat
Depok
echo
Fungsi : untuk menampilkan string ke standard output (layar).
Bentuk umum :
echo [-pilihan] arg1 arg2 ... argn
Keterangan :
Setiap argumen dipisahkan oleh satu spasi.
Pilihan yang sering digunakan :
-n : tidak menampilkan baris baru (newline)
-e : untuk menampilkan backslash-escaped characters
Backslash-escaped characters :
Karakter Hasil yang dicetak
\b
\c
\f
\n
\r
backspace
seluruh argumen tanpa new line
formfeed
new line
carriage return
\\
\nnn
karakter backslash
ASCII karakter dengan nnn=3 digit oktal
yang diawali 0
Contoh :
1. Menampilkan isi direktori
$ echo *
bin mail misc
Hal 46 / 93 Modul Pelatihan Linux Fundamental – InfoSolusi
2. Menampilkan baris kosong
$ echo
3. Menampilkan tabulasi
$ echo -e "x\ty"
x y
4. Menampilkan baris baru
$ echo -e "\n\nlompati 2 baris"
lompati 2 baris
5. Membuat script untuk menerima input - tanpa escape character
$ cat > masukan1
echo "Nama Anda: "
read nama
echo "Nama anda adalah $nama"
[Ctrl]+[D]
$ masukan1
Nama Anda:
Unyil
Nama anda adalah Unyil
6. Membuat script untuk menerima input - dengan escape character
$ cat > masukan2
echo -e "Nama Anda: \c"
read nama
echo "Nama anda adalah $nama"
[Ctrl]+[D]
$ masukan2
Nama Anda: Unyil
Nama anda adalah Unyil
Pencabangan dengan If
> if
Fungsi : untuk mengambil keputusan perintah mana yang akan dijalankan dari beberapa pilihan
yang ada
Bentuk umum :
if kondisi
then
perintah
perintah
:
fi
if kondisi
then
perintah
perintah
:
else
perintah
perintah
:
Fi
Keterangan :
Kondisi diperoleh sebagai hasil eksekusi program (berupa exit status).
Exit status = 0 maka perintah-perintah antara then dan fi dilaksanakan.
Exit status <> 0
Perintah antara then dan fi dilompati.
Untuk bentuk umum dengan else perintah-perintah antara else dan fi dilaksanakan.
> Exit Status
Modul Pelatihan Linux Fundamental – InfoSolusi Hal 47 / 93
Suatu angka yang menunjukkan sukses atau tidaknya suatu program atau perintah dijalankan.
Exit status = 0 berarti sukses.
Exit status <> 0 berarti gagal.
Exit status dari suatu perintah pipeline adalah exit status dari perintah paling akhir dalam
pipeline.
Variabel $?
$? merupakan variabel penyimpanan exit status dari perintah terakhir.
Contoh :
$ cp file1 file2
$ echo $?
0 SUKSES
$ cp nihil backup
cp: nihil: No such file or directory asumsi file nihil tidak ada
$ echo $?
1 GAGAL
Contoh :
$ cat > on
#
# menentukan user yang sedang login
#
user="$1"
if who | grep "$user"
then
echo "$user sedang login"
else
echo "$user tidak login"
fi
[Ctrl]+[D]
$ who
unyil ttyp03 Feb 16 08:37
usro ttyp09 Feb 16 09:13
$ on unyil
unyil ttyp03 Feb 16 08:37
unyil sedang login
$ on slamet
slamet tidak login
> Bentuk else if
Bentuk else if digunakan jika pilihan yang harus dilaksanakan lebih dari dua.
Bentuk umum :
if kondisi1
then
perintah
perintah
:
else
if kondisi2
then
perintah
perintah
:
else
perintah
perintah
if kondisi1
then
perintah
perintah
:
elif kondisi2
then
perintah
perintah
:
else
perintah
perintah
:
Hal 48 / 93 Modul Pelatihan Linux Fundamental – InfoSolusi
:
fi
fi
fi
Evaluasi Kondisi
Fungsi : melakukan testing satu kondisi atau lebih
test
Bentuk umum : test ekspresi atau [ ekspresi ] atau [[ ekspresi ]]
Keterangan :
ekspresi adalah kondisi yang akan ditest
untuk bentuk [ ekspresi ] harus ada spasi setelah tanda "[" dan sebelum tanda "]"
test mengembalikan :
exit status = 0 jika ekspresi bernilai true.
exit status <> 0 jika ekspresi bernilai false.
> Operator String
Operator Menghasilkan exit status=0 jika
string1 = string2 string1 identik dengan string2
string1 !=
string2
string1 tidak identik dengan string2
string string tidak null (test untuk string dengan panjang <> 0)
-n string string tidak null (test untuk string dengan panjang <> 0)
-z string string null (test untuk string dengan panjang = 0)
Contoh :
$ nama="unyil"
$ [ "$nama" = unyil ]
$ echo $?
0 True
$ hari="kamis"
$ [ "$hari" = rabu ]
$ echo $?
1 False
> Operator Integer
Operator Menghasilkan exit status=0 jika
int1 –eq int2 int1 sama dengan int2
int1 –ge int2 int1 lebih besar atau sama dengan int2
int1 –gt int2 int1 lebih besar dari int2
int1 –le int2 int1 lebih kecil atau sama dengan int2
int1 –lt int2 int1 lebih kecil dari int2
int1 –ne int2 int1 tidak sama dengan int2
Keterangan :
Shell tidak akan membedakan tipe harga yang disimpan dalam variabel tetapi test akan
memperlakukan suatu harga sebagai integer jika dibandingkan dengan operator integer.
Contoh :
$ x1="005"
$ x2=" 10"
$ [ "$x1" = 5 ]
$ echo $?
1
Perbandingan string
False
$ [ "$x1" –eq 5 ]
$ echo $?
Perbandingan integer
True
0
$ [ "$x2" = 10 ]
$ echo $?
1
Perbandingan string
False
$ [ "$x2" –eq 10 ]
$ echo $?
0
Perbandingan integer
True
> Operator File
Operator Menghasilkan exit status=0 jika
-d file file adalah direktori
-f file file adalah file biasa (ordinary file)
-L file file adalah symbolic link
-r file file dapat dibaca oleh proses
-s file panjang file <> nol
-w file file dapat ditulis oleh proses
-x file file dapat dijalankan atau dieksekusi
Contoh :
$ ls -l
total 6
drwxr-xr-x 2 badu imt 32 Mar 12 1999 data
-rw-r--rw- 1 badu imt 18 Mar 12 1999 hasil
-rw-r--r-- 1 badu imt 20 Mar 12 1999 test
$ [ -f hasil ]
$ echo $?
0 True
$ [ -d data ]
$ echo $?
0 True
> Operator Logika
1. Operator negasi (!)
Fungsi : me-negasi-kan hasil evaluasi kondisi/ekspresi
Contoh :
$ ls -l
total 6
drwxr-xr-x 2 badu imt 32 Mar 12 1999 data
-rw-r--rw- 1 badu imt 18 Mar 12 1999 hasil
-rw-r--r-- 1 badu imt 20 Mar 12 1999 test
$ [ ! -f hasil ]
$ echo $?
1 False
[ ! "$x1" = "$x2" ] sama hasilnya dengan
[ "$x1" != "$x2" ] yaitu akan true (exit status = 0) jika $x1 tidak
identik dengan $x2
2. Operator and (-a)
Fungsi :
melakukan fungsi logika and terhadap 2 ekspresi
mengembalikan hasil true bila kedua ekspresi benar
Bentuk umum : [ ekspresi1 -a ekspresi2 ]
Hal 50 / 93 Modul Pelatihan Linux Fundamental – InfoSolusi
Keterangan :
Memiliki prioritas lebih rendah dibandingkan dengan operator string, integer dan file.
Contoh :
$ ls -l
total 6
drwxr-xr-x 2 badu imt 32 Mar 12 1999 data
-rw-r--rw- 1 badu imt 18 Mar 12 1999 hasil
-rw-r--r-- 1 badu imt 20 Mar 12 1999 test
$ [ -f hasil -a -d data ]
$ echo $?
0 True
> Operator or (-o)
Fungsi :
melakukan fungsi logika or terhadap 2 ekspresi
mengembalikan hasil true bila salah satu ekspresi benar
Bentuk umum : [ ekspresi1 -o ekspresi2 ]
Keterangan :
Memiliki prioritas lebih rendah dibandingkan dengan operator -a.
Contoh :
$ ls -l
total 6
drwxr-xr-x 2 badu imt 32 Mar 12 1999 data
-rw-r--rw- 1 badu imt 18 Mar 12 1999 hasil
-rw-r--r-- 1 badu imt 20 Mar 12 1999 test
$ [ -d hasil -o -d data ]
$ echo $?
0 True
Pengulangan dengan for
Berfungsi untuk menjalankan sekelompok perintah secara berulang-ulang sesuai dengan jumlah
yang sudah ditentukan.
Bentuk umum :
for dengan list
for var in word1 word2 ... wordn
do
perintah
perintah
:
done
for tanpa list
for var
do
perintah
perintah
:
Done
Keterangan :
Perintah-perintah antara do dan done disebut badan Iterasi (Body Loop)
Pertama kali loop dijalankan, var disubstitusi dengan word1
(atau $1 untuk for tanpa list)
Modul Pelatihan Linux Fundamental – InfoSolusi Hal 51 / 93
lalu badan iterasi dijalankan.
Berikutnya var disubstitusikan dengan word2
(atau $2 untuk for tanpa list) kemudian badan
iterasi dieksekusi lagi dan seterusnya.
Badan iterasi ini dijalankan berulang-ulang dari atas ke bawah sebanyak:
Jumlah word dalam list setelah in
Jumlah argumen pada command line (untuk for tanpa list)
Contoh :
1. For dengan list
$ cat > loop1
for i in 1 2 3
do
echo $i
done
[Ctrl]+[D]
$ loop1
123
2. For tanpa list
$ cat > loop2
for i
do
echo $i
done
[Ctrl]+[D]
$ loop2 1 2 3
123
Shell Script II
Pencabangan dengan case
> case
case berfungsi untuk membandingkan satu harga dengan sejumlah pola.
Bentuk umum :
case harga in
pola1 ) perintah
perintah
:
perintah ;;
pola2 ) perintah
perintah
:
perintah ;;
polan ) perintah
perintah
:
perintah ;;
esac
Keterangan :
case membandingkan harga dengan pola-pola yang ada dari atas ke bawah.
jika ditemukan pola yang tepat maka perintah-perintah untuk pola tersebut dijalankan
(dibatasi ;;).
jika tidak ditemukan maka tidak ada perintah-perintah dalam case yang dijalankan.
case dapat memanfaatkan sejumlah pattern matching character seperti :
*
?
[ … ]
Contoh :
$ cat > ctype
if [ $# -ne 1 ]
then
echo usage : ctype char
exit 1
fi
char=$1
case "$char" in
[0-9] ) echo digit ;;
[a-z] ) echo huruf kecil ;;
[A-Z] ) echo huruf besar ;;
? ) echo karakter khusus ;;
* ) echo ketikkan 1 karakter saja ;;
esac
[Ctrl]+[D]
$ ctype u
huruf kecil
$ ctype '>'
karakter khusus
$ ctype xx
ketikkan satu karakter saja
> Operasi Logika or Antar Dua Pola
Bentuk umum: pola1 | pola2
Keterangan : harga dapat diterima apabila memenuhi salah satu pola.
Contoh :
$ cat > greetings
hour=`date +%H`
case "$hour"
in
0? | 1[01] ) echo "Good morning" ;;
1[2-7] ) echo "Good afternoon" ;;
* ) echo "Good evening" ;;
esac
[Ctrl]+[D]
$ date
Tue Mar 7 10:12:40 JAVT 2000
$ greetings
Good morning
Keterangan :
Perintah date +%H hanya akan menampilkan bagian jam-nya saja dari perintah date.
> Bentuk && (and-if)
Fungsi : mengatur eksekusi perintah berdasarkan exit status perintah sebelumnya.
Bentuk umum : perintah1 && perintah2
Keterangan :
perintah
2
dikerjakan bila perintah
1
menghasilkan exit status = 0, jika tidak maka perintah
2
dilompati (melakukan operasi logika and)
perintah1 && perintah2
hasilnya sama
if perintah1
then
perintah2
fi
Contoh :
$ cat > cari
user="$1"
who | grep "$user" && echo "$user sedang login"
[Ctrl]+[D]
$ who
unyil ttyp01 Feb 15 14:00
badu ttyp01 Feb 15 14:01
$ cari unyil
unyil sedang login
$ cari usro
> Bentuk | | (or-if)
Bentuk umum : perintah1 || perintah2
Keterangan :
Modul Pelatihan Linux Fundamental – InfoSolusi Hal 55 / 93
perintah
2
dikerjakan hanya jika perintah
1
menghasilkan exit status <> 0 (melakukan operasi
logika or)
perintah1 || perintah2
hasilnya sama
if perintah1
then
:
else
perintah2
fi
Keterangan :
Tanda : berarti tidak melakukan apa-apa
Contoh :
$ cat > cari2
user="$1"
who | grep "$user" || echo "$user tidak login"
[Ctrl]+[D]
$ who
unyil ttyp01 Feb 15 14:00
badu ttyp02 Feb 15 14:01
$ cari2 unyil
unyil ttyp01 Feb 15 14:00
$ cari2 usro
usro tidak login
Ekspresi Aritmetika
Operator yang digunakan dalam ekspresi aritmatika :
+ : penjumlahan
- : pengurangan
/ : pembagian
* : perkalian
% : modula (sisa pembagian)
Keterangan :
"+" dan "-" memiliki prioritas yang lebih rendah dibanding tiga operator lain.
setiap operator didahului dan diikuti oleh spasi.
operator "*" harus dikutip agar tidak rancu dengan substitusi file.
> expr
Bentuk umum : expr ekspresi
Contoh :
$ expr 1 + 2
3
$ expr 17 * 6
expr: syntax error
$ expr 17 "*" 6
102
$ expr 17 '*' 6
102
$ expr 17 \* 6
102
Catatan :
Bila hasil dari perintah expr akan disimpan ke dalam suatu variabel maka perintah expr
harus berada di dalam tanda kutip balik.
Contoh :
$ i=1
$ i=`expr $i + 1`
$ echo $i
2
> let
Bentuk umum : let ekspresi
Contoh :
$ i=1
$ let i=i+1
$ echo $i
2
> (( ))
Bentuk umum : (( ekspresi ))
$ i=1
$ ((i=i+1))
$ echo $i
2
Pengulangan dengan while dan until
> while
Bentuk umum :
while kondisi
do
perintah
perintah
:
done
Keterangan :
periksa kondisi
jika exit status = 0 jalankan perintah-perintah antara do dan done
ulangi langkah pertama
jika exit status <> 0 stop
Contoh :
$ cat > selama
i=1
while [ $i –le 4 ]
do
echo $i
let i=i+1
done
[Ctrl]+[D]
$ selama
1234
> true
Perintah true digunakan dalam while apabila menginginkan pengulangan secara terus
menerus.
Contoh :
$ cat > ulang
while true
do
echo "Hallo"
done
[Ctrl]+[D]
$ ulang
Hallo
Hallo
Hallo
[Ctrl]+[C] Tekan Ctrl-C untuk menghentikan program
> until
Bentuk umum :
until kondisi
do
perintah
perintah
:
done
Keterangan :
periksa kondisi
jika exit status <> 0 jalankan perintah-perintah antara do dan done
ulangi langkah pertama
jika exit status = 0 stop
Contoh :
$ cat > hingga
i=1
until [ $i –gt 4 ]
do
echo $i
let i=i+1
done
[Ctrl]+[D]
$ hingga
1234
> false
Perintah false digunakan dalam until apabila menginginkan pengulangan secara terus
menerus.
Contoh :
$ cat > ulang2
until false
do
echo "Hallo"
done
[Ctrl]+[D]
$ ulang2
Hallo
Hallo
Hallo
[Ctrl]+[C] Tekan Ctrl-C untuk menghentikan program
> break
Fungsi : keluar dari pengulangan
Bentuk umum : break n
Keterangan :
keluar dari n loop terdalam
Contoh :
$ cat > potong
i=0
while [ $i -le 4 ]
do
let i=i+1
if [ $i = 3 ]
then
break
fi
echo $i
done
[Ctrl]+[D]
$ potong
12
> continue
Fungsi : melompati sisa perintah dalam loop untuk kembali melanjutkan loop dari atas (kembali
ke pemeriksaan kondisi)
Bentuk umum : continue n
Keterangan :
n loop terdalam dilompati
Contoh :
$ cat > lewat
i=0
while [ $i -le 4 ]
do
let i=i+1
if [ $i = 3 ]
then
continue
fi
echo $i
done
[Ctrl]+[D]
$ lewat
124
> I/O Redirection dalam Pengulangan
Contoh :
$ cat > selama2
i=1
while [ $i –le 4 ]
do
echo $i
let i=i+1
done > hasil
[Ctrl]+[D]
$ selama2
$ cat hasil
1234
Fungsi
Merupakan kumpulan perintah yang dapat dipanggil berulang kali dalam suatu shell script.
Fungsi dieksekusi seperti perintah biasa.
Bentuk Umum :
function nama_fungsi () { perintah; ... perintah; }
atau
nama_fungsi() { perintah; ... perintah; }
Keterangan :
Setelah tanda "{" harus diikuti spasi dan sebelum tanda "}" juga harus didahului spasi
Contoh :
$ cat > fungsi
nu () { who | wc -l; }
[Ctrl]+[D]
$ . fungsi
$ who
unyil ttyp01 Feb 15 14:00
badu ttyp02 Feb 15 14:01
usro ttyp03 Feb 15 14:03
ucrit ttyp04 Feb 15 14:05
$ nu
4
> return
Digunakan untuk menghentikan eksekusi suatu fungsi dan kembali ke program yang
memanggilnya
Bentuk umum : return n
Keterangan :
n = exit status yang ingin dikembalikan
0 comments:
Speak up your mind
Tell us what you're thinking... !