Nama : Moh.Nur Alimahmud
Nim : 201181090
Seksi : 03
PRAKTIKUM SISTEM OPERASI
Pemrogramman Shell
Shell
merupakan penghubung antara pemakai dan sistem.Disamping itu Shell
memiliki fungsi untuk menganalisa setiapperintah yang dimasukkan
melalui prompt UNIX danmengeksekusi perintah tersebut.
Disamping itu, shellmemiliki kemampuan sebagai interpreter
dari bahasapemrogramannya, yaitu bahasa shell.
Pada dasarnya pemrograman shell Unix adalah sepertibatch file pada DOS, namun dalam berbagai hal lebih canggih.
Shell sebagai bahasa pemrograman memiliki kelebihandibanding dengan bahasa pemrograman lainnya yang biasadipergunakan pada sistem UNIX, yaitu:
· Mudah dan handal dalam menggabungkan utilitas-utilitas, lingkungan sistem (environment) dan tools-tools yang ada pada sistem UNIX sertamemanfaatkannya secara optimal.
· Karena pemrograman shell dalam bentuk interpreter,maka kesalahan yang terjadi pada pemrograman akanlebih mudah ditemukan dan dimodifikasi.
· Pemanfaatan utilitas dan tools UNIX mengakibatkanpengembangan suatu program dengan shell relatiflebih cepat. Karena kita tidak perlu membangunmodul-modul baru lagi dari awal.
Bagi para pemakai biasa, pemrograman shell seringdimanfaatkan untuk mendukung kerja pemakai pada lingkungansistem UNIX.
Pada dasarnya pemrograman shell Unix adalah sepertibatch file pada DOS, namun dalam berbagai hal lebih canggih.
Shell sebagai bahasa pemrograman memiliki kelebihandibanding dengan bahasa pemrograman lainnya yang biasadipergunakan pada sistem UNIX, yaitu:
· Mudah dan handal dalam menggabungkan utilitas-utilitas, lingkungan sistem (environment) dan tools-tools yang ada pada sistem UNIX sertamemanfaatkannya secara optimal.
· Karena pemrograman shell dalam bentuk interpreter,maka kesalahan yang terjadi pada pemrograman akanlebih mudah ditemukan dan dimodifikasi.
· Pemanfaatan utilitas dan tools UNIX mengakibatkanpengembangan suatu program dengan shell relatiflebih cepat. Karena kita tidak perlu membangunmodul-modul baru lagi dari awal.
Bagi para pemakai biasa, pemrograman shell seringdimanfaatkan untuk mendukung kerja pemakai pada lingkungansistem UNIX.
Dasar-dasar Shell Programming
Sebelum mempelajari pemrograman Bash shell di linux sebaiknya anda telah mengetahui dan menggunakan perintah - perintah dasar shell baik itu internal command yang telah disediakan shell maupun eksternal command atau utility, seperti :
· cd, pwd, times, alias, umask, exit, logout, fg, bg, ls, mkdir, rmdir, mv, cp, rm, clear, ...
· utilitas seperti cat, cut, paste, chmod, lpr,...
· redirection (cara mengirim output ke file atau menerima input dari file), menggunakan operator redirect >, >>, <, <<,contohnya: ls > data
hasil ls dikirim ke file data, jika file belum ada akan dibuat tetapi jika sudah ada isinya akan ditimpa.
ls >> data
hampir sama, bedanya jika file sudah ada maka isinya akan ditambah di akhir file.
cat < data
file data dijadikan input oleh perintah cat
· pipa (output suatu perintah menjadi input perintah lain), operatornya : | , contoh: ls -l | sort -s
ouput perintah ls -l (long) menjadi input perintah sort -s (urutkan secara descending), mending pake ls -l -r saja :-)
ls -l | sort -s | more
cat <data | sort > databaru Wildcard dengan karakter *, ?, [ ], contohnya: ls i*
tampilkan semua file yang dimulai dengan i
ls i?i
tampilkan file yang dimulai dengan i, kemudian sembarang karakter tunggal, dan diakhiri dengan i
ls [ab]*
tampilkan file yang dimulai dengan salah satu karakter a atau b
Variabel pada shell
Seperti
juga bahasa pemrograman lainnya, shell memilikikemampuan untuk
menyimpan nilai ke dalam variabel. Sebuahvariabel shell dapat
diawali oleh alfabet atau karaktergaris bawah dan diikuti oleh nol
atau lebih alfanumerik ataukarakter garis bawah.
Untuk menyimpan sebuah nilai ke dalam variabel shell,kita dapat lakukan dengan menyebutkan nama variabel shelldengan diikuti oleh karakter sama dengan '=' dan diikutioleh nilai yang ingin disimpan ke dalam variabel tersebut.
$ jumlah=10
$ dir_ku=/usr/mhs/denny
$
Untuk menyimpan sebuah nilai ke dalam variabel shell,kita dapat lakukan dengan menyebutkan nama variabel shelldengan diikuti oleh karakter sama dengan '=' dan diikutioleh nilai yang ingin disimpan ke dalam variabel tersebut.
$ jumlah=10
$ dir_ku=/usr/mhs/denny
$
Ada dua hal penting yang perlu diketahui dalampenggunaan variabel shell ini.
· Tidak diijinkan adanya spasi pada sebelum dan sesudahkarakter sama dengan.
· Shell tidak mengenal tipe data. Dengan demikian,nilai apapun yang kita masukkan akan diartikansebagai untaian karakter. Jadi nilai 10 pada contohdiatas adalah untaian karakter dan bukan integer.
Untuk menampilkan isi dari variabel, digunakan perintahecho sebagai berikut.
echo $variabel
Karakter $ merupakan karakter khusus yang dikenal olehshell, yang mengartikan bahwa karakter berikutnya adalahnama variabel. Perhatikan contoh berikut:
$ echo jumlahjumlah
$ echo $jumlah10
$
Contoh pertama menunjukkan bahwa jumlah adalah karakterbiasa, sedangkan pada contoh ke dua jumlah menunjukkan namavariabel sehingga shell akan mensubstitusi variabel tersebutdengan nilai yang tersimpan didalamnya untuk ditampilkan keterminal oleh perintah echo.
Untuk menghapus atau menghilangkan variabel yang telahkita definisikan digunakan perintah unset sebagai berikut:
$ x=100
$ echo $x
100
$ unset x
$ echo $x (variabel telah hilang !)
$
Manajemen Input dan Output pada Shell
I/O merupakan hal yang mendasar dari kerja komputer karena kapasitas inilah yang membuat komputer begitu berdayaguna. I/O yang dimaksud adalah device yang menangani masukan dan keluaran, baik itu berupa keyboard, floppy, layar monitor,dsb. sebenarnya kita telah menggunakan proses I/O ini pada contoh -contoh diatas seperti statement echo yang menampilkan teks atau informasi ke layar, atau operasi redirect ke ke file. selain echo, bash menyediakan perintah builtin printf untuk mengalihkan keluaran ke output standard, baik ke layar ataupun ke file dengan format tertentu, mirip statement printf kepunyaan bahasa C atauperl. berikut contohnya:
4.1 Output dengan printf
#!/bin/bash
#pr1
url="pemula.linux.or.id";
angka=32;
printf "Hi, Pake printf ala C\n\t\a di bash\n";
printf "My url %s\n %d decimal = %o octal\n" $url $angka $angka;
printf "%d decimal dalam float = %.2f\n" $angka $angka
Hasilnya:
[fajar@linux$]./pr1
Hi, Pake printf ala C
di bash
My url pemula.linux.or.id
32 decimal = 40 octal
32 decimal dalam float = 32.00
untuk menggunakan format kontrol sertakan simbol %, bash akan mensubtitusikan format tsb dengan isi variabel yang berada di posisi kanan sesuai dengan urutannya jika lebih dari satu variabel, \n \t \aadalah karakter sekuen lepas newline,tab, dan bell,
Format control
|
keterangan
|
%d
|
untuk format data integer
|
%o
|
octal
|
%f
|
float atau decimal
|
%x
|
Hexadecimal
|
pada script diatas %.2f akan mencetak 2 angka dibelakang koma, defaultnya 6 angka, informasi lebih lanjut dapat dilihat via man printf
4.2 Input dengan read
Setelah echo dan printf untuk proses output telah anda ketahui, sekarang kita menggunakan statement read yang cukup ampuh untuk membaca atau menerima masukan dari input standar
syntax :
read -opsi [nama_variabel...]
berikut contoh scriptnya:
#!/bin/bash
#rd1
echo -n "Nama anda :"
read nama;
echo "Hi $nama, apa khabarmu";
echo "Pesan dan kesan :";
read
echo "kata $nama, $REPLY";
Hasilnya:
[fajar@linux$]./rd1
Nama anda : pinguin
Hi pinguin, apa khabarmu
Pesan & kesan :
pake linux pasti asyk - asyk aja
kata pinguin, pake linux pasti asyk - asyk aja
jika nama_variabel tidak disertakan, maka data yang diinput akan disimpan di variabel REPLY contoh lain read menggunakan opsi
-t(TIMEOUT), -p (PROMPT), -s(SILENT), -n (NCHAR) dan -d(DELIM)
#!/bin/bash
read -p "User Name : " user
echo -e "Password 10 karakter,\njika dalam 6 second tidak dimasukkan pengisian password diakhiri"
read -s -n 10 -t 6 pass
echo "kesan anda selama pake linux, _underscore=>selesai"
read -d _ kesan
echo "User = $user"
echo "Password = $pass"
echo "Kesan selama pake linux = $kesan"
Hasilnya: silahkan dicoba sendiri :-)
Opsi
|
Keterangan
|
-p
|
memungkinkan kita membuat prompt sebagai informasi
pengisian
|
-s
|
membuat input yang dimasukkan tidak di echo ke layar
(seperti layaknya password di linux)
|
-n
|
menentukan banyak karakter yang diinput
|
-d
|
menentukan karakter pembatas masukan
|
4.3. Output dengan konstanta ANSI
4.3.1. Pengaturan Warna
Untuk pewarnaan tampilan dilayar anda dapat menggunakan konstanta ANSI (salah satu badan nasional amerika yang mengurus standarisasi).
syntaxnya:
\033[warnam
Dimana:
m menandakan setting color
contohnya:
[fajar@linux$]echo -e "\033[31m HELLO\033[0m"
HELLO
konstanta 31m adalah warna merah dan 0m untuk mengembalikan ke warna normal (none), tentunya konstanta warna ansi ini dapat dimasukkan ke variabel PS1 untuk mengatur tampilan prompt shell anda, contohnya:
[fajar@linux$]PS1="\033[34m"
[fajar@linux$]
berikut daftar warna yang dapat anda gunakan:
foreground
None 0m
Black 0;30 Dark Gray 1;30
Red 0;31 Light Red 1;31
Green 0;32 Light Green 1;32
Brown 0;33 Yellow 1;33
Blue 0;34 Light Blue 1;34
Purple 0;35 Light Purple 1;35
Cyan 0;36 Light Cyan 1;36
Light Gray 0;37 White 1;37
background
dimulai dengan 40 untuk BLACK,41 RED,dstlain-lain
4 underscore,5 blink, 7 inverse
tentunya untuk mendapatkan tampilan yang menarik anda dapat menggabungkannya antara foreground dan background
[fajar@linux$]echo -e "\033[31;1;33m Bash and ansi color\033[0m
Struktur Kontrol Pada Shell
Bagian ini merupakan ciri yang paling khas dari suatu
bahasa pemrograman dimana kita dapat mengeksekusi suatu pernyataan dengan
kondisi terntentu dan mengulang beberapa pernyataan dengan kode script yang
cukup singkat.
if
Statement builtin if berfungsi untuk melakukan
seleksi berdasarkan suatu kondisi tertentu
syntax:
if test-command1;
then
perintah1;
elif test-command2;
then
perintah2;
else
alternatif_perintah;
fi
contoh script if1:
#!/bin/bash
#if1
clear;
if [ $# -lt 1 ];
then
echo
"Usage : $0 [arg1 arg2 ...]"
exit 1;
fi
echo "Nama script anda : $0";
echo "Banyak argumen : $#";
echo "Argumennya adalah: $*";
Hasilnya:
[fajar@linux$]./if1
Usage : ./if1 [arg1 arg2 ...]
statement dalam blok if...fi akan dieksekusi
apabila kondisi ifterpenuhi, dalam hal ini jika script if1 dijalankan
tanpa argumen. kita tinggal membaca apakah variabel $# lebih kecil
(less than) dari 1, jika ya maka eksekusi perintah di dalam blok if
..fi tsb. perintah exit 1akan mengakhiri jalannya script, angka 1 pada
exit adalah status yang menandakan terdapat kesalahan, status 0 berarti sukses,
anda dapat melihat isi variabel $? yang menyimpan nilai status exit,
tetapi jika anda memasukkan satu atau lebih argumen maka
blok if...fi tidak akan dieksekusi, statement diluar
blok if..filah yang akan dieksekusi.
contoh script if2:
#!/bin/bash
kunci="bash";
read -s -p "Password anda : " pass
if [ $pass==$kunci ]; then
echo
"Sukses, anda layak dapat linux"
else
echo "Wah
sorry, gagal nih";
fi
Hasilnya
[fajar@linux$]./if2
Password anda : bash
Sukses, anda layak dapat linux
[fajar@linux$]./if2
Password anda : Bash
Wah sorry, gagal nih
klausa else akan dieksekusi
jika if tidak terpenuhi, sebaliknya jika ifterpenuhi
maka else tidak akan dieksekusi
contoh script if3: penyeleksian dengan kondisi majemuk
#!/bin/bash
clear
echo "MENU HARI INI";
echo "-------------";
echo "1. Bakso
";
echo "2. Gado-Gado ";
echo "3. Exit
";
read -p "Pilihan anda [1-3] :" pil;
if [ $pil -eq 1 ];
then
echo
"Banyak mangkuk =";
read jum
let
bayar=jum*1500;
elif [ $angka -eq 2 ];
then
echo
"Banyak porsi =";
read jum
let
bayar=jum*2000;
elif [ $angka -eq 3 ];
then
exit 0
else
echo
"Sorry, tidak tersedia"
exit 1
fi
echo "Harga bayar = Rp. $bayar"
echo "THX"
Hasilnya:
[fajar@linux$]./if3
MENU HARI INI
-------------
1. Bakso
2. Gado-Gado
3. Exit
Pilihan anda :2
Banyak porsi = 2
Harga bayar = Rp. 4000
THX
5.3.1. statement for
syntax:
for NAME [in WORDS ...]; do perintah; done
contoh script for1
#!/bin/bash
for angka in 1 2 3 4 5;
do
echo
"angka=$angka";
done
Hasilnya:
[fajar@linux$]./for1
angka=1
angka=2
angka=3
angka=4
angka=5
contoh script for2 berikut akan membaca argumen yang
disertakan waktu script dijalankan
#!/bin/bash
for var
do
echo $var
done
Hasilnya:
[fajar@linux$]./for2 satu 2 tiga
satu
2
tiga
atau variasi seperti berikut
#!/bin/bash
for var in `cat /etc/passwd`
do
echo $var
done
Hasilnya: hasil dari perintah cat terhadap
file /etc/passwd disimpan kevar dan ditampilkan
menggunakan echo $var ke layar, mendingan gunakancat
/etc/passwd saja biar efisien. :-)
selama kondisi bernilai benar atau zero perintah dalam
blok while akan diulang terus
syntax:
while KONDISI; do perintah; done;
contoh script wh1 mencetak bilangan ganjil antara 1-10
#!/bin/bash
i=1;
while [ $i -le 10 ];
do
echo
"$i,";
let i=$i+2;
done
Hasilnya:
[fajar@linux$]./wh1
1,3,5,7,9,
kondisi tidak terpenuhi pada saat nilai i=11 (9+2),
sehingga perintah dalam blokwhile tidak dieksekusi lagi contoh script wh2
akan menghitung banyak bilangan genap dan ganjil yang ada.
#!/bin/bash
i=0;
bil_genap=0;
bil_ganjil=0;
echo -n "Batas loop :";
read batas
if [ -z $batas ] || [ $batas -lt 0 ]; then
echo "Ops,
tidak boleh kosong atau Batas loop harus
>= 0";
exit 0;
fi
while [ $i -le $batas ];
do
echo -n
"$i,";
if [ `expr $i % 2` -eq 0 ]; then
let
bil_genap=$bil_genap+1;
else
let
bil_ganjil=$bil_ganjil+1;
fi
let
i=$i+1; #counter untuk mencapai batas
done
echo
echo "banyak bilangan genap = $bil_genap";
echo "banyak bilangan ganjil = $bil_ganjil";
Hasilnya:
[fajar@linux$]./wh2
Batas loop : 10
0,1,2,3,4,5,6,7,8,9,10,
banyak bilangan genap
= 6
banyak bilangan ganjil = 5
untuk mengetahui apakah nilai i berupa bilangan
genap kita cukup menggunakan operasi matematika % (mod), jika
nilai i dibagi 2menghasilkan
sisa 0 berarti i adalah bilangan genap (semua bilangan
genap yang dibagi dengan 2 mempunyai sisa 0) maka
pencacah (bil_genap)dinaikkan 1, selain itu i bilangan ganjil
yang dicatat oleh pencacahbil_ganjilproses ini dilakukan terus selama nilai i lebih
kecil atau samadengan nilai batas yang dimasukkan. script juga akan
memeriksa dahulu nilai batas yang dimasukkan apabila kosong atau
lebih kecil dari0 maka proses segera berakhir.tentunya dengan statement while kita
sudah dapat membuat perulangan pada script kedai diatas agar dapat
digunakan terus-menerus selama operator masih ingin melakukan proses
perhitungan. lihat contoh berikut:
#!/bin/bash
#kedai
lagi='y'
while [ $lagi ==
'y' ] || [ $lagi == 'Y' ];
do
clear
echo "MENU
HARI INI";
echo
"-------------";
echo "1.
Bakso ";
echo "2.
Gado-Gado ";
echo "3.
Exit ";
read -p
"Pilihan anda [1-3] :" pil;
if [ $pil -eq 1 ];
then
echo -n
"Banyak mangkuk =";
read jum
let
bayar=jum*1500;
elif [ $pil -eq 2 ];
then
echo -n
"Banyak porsi =";
read jum
let
bayar=jum*2000;
elif [ $pil -eq 3 ];
then
exit 0
else
echo
"Sorry, tidak tersedia"
exit 1
fi
echo "Harga bayar = Rp. $bayar"
echo "THX"
echo
echo -n "Hitung lagi (y/t) :";
read lagi;
#untuk validasi
input
while [ $lagi != 'y' ] && [ $lagi != 'Y' ]
&& [ $lagi != 't' ] && [ $lagi != 'T' ];
do
echo
"Ops, isi lagi dengan (y/Y/t/Y)";
echo -n
"Hitung lagi (y/t) :";
read lagi;
done
done
proses pemilihan menu dan perhitungan biaya akan diulang
terus selama anda memasukkan y/Y dan t/T untuk berhenti.
dalam script terdapat validasi input menggunakan while, sehingga
hanya y/Y/t/T saja yang dapat diterima soalnya saya belum mendapatkan
fungsi yang lebih efisien :-)
jika while akan mengulang selama kondisi benar,
lain halnya dengan statement until yang akan mengulang selama kondisi
salah. berikut contoh script ut menggunakan until
#!/bin/bash
i=1;
until [ $i -gt 10 ];
do
echo $i;
let i=$i+1
done
Hasilnya:
[fajar@linux$]./ut
1,2,3,4,5,6,7,8,9,10,
perhatikan kodisi until yang salah [ $i
-gt 10], dimana nilai awal i=1dan akan berhenti apabila nilai i =
11 (bernilai benar) 11 -gt 10.
select berguna untuk pembuatan layout berbentuk menu
pilihan, anda lihat contoh script pembuatan menu diatas kita hanya melakukannya
dengan echosecara satu persatu, dengan select akan terlihat
lebih efisien.
syntax:
select varname in (<item list>); do perintah;
done
sewaktu dijalankan bash akan menampilkan daftar menu yang
diambil dari item list, serta akan menampilkan prompt yang menunggu masukan
dari keyboard, masukan tersebut oleh bash disimpan di variabel
builtin REPLY, apabila daftar item list tidak dituliskan maka bash akan
mengambil item list dari parameter posisi sewaktu script dijalankan. lebih
jelasnya lihat contoh berikut:
#!/bin/bash
#menu1
clear
select menu
do
echo "Anda
memilih $REPLY yaitu $menu"
done
Hasilnya:
layout:
[fajar@linux$]./menu1 Slackware Redhat Mandrake
1) Slackware
2) Redhat
3) Mandrake
#? 1
Anda memilih 1 yaitu Slackware
karena item list tidak disertakan dalam script, maka
sewaktu script dijalankan kita menyertakan item list sebagai parameter posisi,
coba gunakan statement select pada program kedai diatas.
#!/bin/bash
#kedai
lagi='y'
while [ $lagi ==
'y' ] || [ $lagi == 'Y' ];
do
clear
select menu in
"Bakso" "Gado-Gado" "Exit";
case $REPLY in
1) echo -n
"Banyak mangkuk =";
read jum
let
bayar=jum*1500;
;;
2) echo -n
"Banyak porsi =";
read jum
let
bayar=jum*2000;
;;
3) exit 0
;;
*) echo
"Sorry, tidak tersedia"
;;
esac
do
echo "Harga bayar = Rp. $bayar"
echo "THX"
echo
echo -n "Hitung lagi (y/t) :";
read lagi;
#untuk validasi
input
while [ $lagi != 'y' ] && [ $lagi != 'Y' ]
&& [ $lagi != 't' ] && [ $lagi != 'T' ];
do
echo
"Ops, isi lagi dengan (y/Y/t/Y)";
echo -n
"Hitung lagi (y/t) :";
read lagi;
done
done
Array pada Shell
adalah kumpulan variabel dengan tipe sejenis, dimana array ini merupakan feature Bash yang cukup indah :-) dan salah satu hal yang cukup penting dalam bahasa pemrograman, anda bisa membayangkan array ini sebagai tumpukan buku - buku dimeja belajar. lebih jelasnya sebaiknya lihat dulu contoh script berikut:
#!/bin/bash
#array1
buah=(Melon,Apel,Durian);
echo ${buah[*]};
Hasilnya
[fajar@linux$]./array1.
Melon,Apel,Durian
anda lihat bahwa membuat tipe array di Bash begitu mudah, secara
otomatis array buah diciptakan dan string Melon menempati index pertama
dari array buah, perlu diketahui bahwa array di Bash dimulai dari index
0,
jadi array buah mempunyai struktur seperti berikut:
buah[0] berisi Melon
buah[1] berisi Apel
buah[2] berisi Durian
0,1,2
adalah index array, berarti ada 3 elemen pada array buah, untuk
menampilkan isi semua elemen array gunakan perintah subtitusi seperti
pada contoh diatas, dengan index berisi "*" atau "@". dengan adanya
index array tentunya kita dapat mengisi array perindexnya dan
menampilkan isi array sesuai dengan index yang diinginkan. anda lihat
contoh berikut:
#!/bin/bash
#array2
bulan[0]=31
bulan[1]=28
bulan[2]=31
bulan[3]=30
bulan[4]=31
bulan[5]=30
bulan[6]=31
bulan[7]=31
bulan[8]=30
bulan[9]=31
bulan[10]=30
bulan[11]=31
echo "Banyak hari dalam bulan November adalah ${bulan[10]} hari"
Hasilnya: [fajar@linux$]./array2 Banyak hari dalam bulan November adalah 30 hari sebenarnya kita dapat mendeklarasikan array secara eksplisit menggunakan statement declare contohnya:
declare -a myarray
mendeklarasikan variabel myarray sebagai array dengan opsi -a, kemudian anda sudah dapat memberinya nilai baik untuk semua elemen atau hanya elemen tertentu saja dengan perulangan yang telah kita pelajari pengisian elemen array dapat lebih dipermudah, lihat contoh :
#!/bin/bash
#array3
#deklarasikan variabel array
declare -a angka
#clear
i=0;
while [ $i -le 4 ];
do
let isi=$i*2;
angka[$i]=$isi;
let i=$i+1;
done
#tampilkan semua elemen array
#dengan indexnya berisi "*" atau "@"
echo ${angka[*]};
#destroy array angka (memory yang dipakai dibebaskan kembali)
unset angka
Hasilnya: [fajar@linux$]./array3 0 2 4 6 8
adalah kumpulan variabel dengan tipe sejenis, dimana array ini merupakan feature Bash yang cukup indah :-) dan salah satu hal yang cukup penting dalam bahasa pemrograman, anda bisa membayangkan array ini sebagai tumpukan buku - buku dimeja belajar. lebih jelasnya sebaiknya lihat dulu contoh script berikut:
#!/bin/bash
#array1
buah=(Melon,Apel,Durian);
echo ${buah[*]};
Hasilnya
[fajar@linux$]./array1.
Melon,Apel,Durian
anda lihat bahwa membuat tipe array di Bash begitu mudah, secara
otomatis array buah diciptakan dan string Melon menempati index pertama
dari array buah, perlu diketahui bahwa array di Bash dimulai dari index
0,
jadi array buah mempunyai struktur seperti berikut:
buah[0] berisi Melon
buah[1] berisi Apel
buah[2] berisi Durian
0,1,2
adalah index array, berarti ada 3 elemen pada array buah, untuk
menampilkan isi semua elemen array gunakan perintah subtitusi seperti
pada contoh diatas, dengan index berisi "*" atau "@". dengan adanya
index array tentunya kita dapat mengisi array perindexnya dan
menampilkan isi array sesuai dengan index yang diinginkan. anda lihat
contoh berikut:
#!/bin/bash
#array2
bulan[0]=31
bulan[1]=28
bulan[2]=31
bulan[3]=30
bulan[4]=31
bulan[5]=30
bulan[6]=31
bulan[7]=31
bulan[8]=30
bulan[9]=31
bulan[10]=30
bulan[11]=31
echo "Banyak hari dalam bulan November adalah ${bulan[10]} hari"
Hasilnya: [fajar@linux$]./array2 Banyak hari dalam bulan November adalah 30 hari sebenarnya kita dapat mendeklarasikan array secara eksplisit menggunakan statement declare contohnya:
declare -a myarray
mendeklarasikan variabel myarray sebagai array dengan opsi -a, kemudian anda sudah dapat memberinya nilai baik untuk semua elemen atau hanya elemen tertentu saja dengan perulangan yang telah kita pelajari pengisian elemen array dapat lebih dipermudah, lihat contoh :
#!/bin/bash
#array3
#deklarasikan variabel array
declare -a angka
#clear
i=0;
while [ $i -le 4 ];
do
let isi=$i*2;
angka[$i]=$isi;
let i=$i+1;
done
#tampilkan semua elemen array
#dengan indexnya berisi "*" atau "@"
echo ${angka[*]};
#destroy array angka (memory yang dipakai dibebaskan kembali)
unset angka
Hasilnya: [fajar@linux$]./array3 0 2 4 6 8
Function pada Shell
merupakan bagian script atau program yang berisi kumpulan beberapa statement yang melaksanakan tugas tertentu. dengan subrutin kode script kita tentunya lebih sederhana dan terstruktur, karena sekali fungsi telah dibuat dan berhasil maka akan dapat digunakan kapan saja kita inginkan. beberapa hal mengenai fungsi ini adalah:
· Memungkinkan kita menyusun kode script ke dalam bentuk modul-modul kecil yang lebih efisien dengan tugasnya masing-masing.
· Mencegah penulisan kode yang berulang - ulang.
untuk membuat subrutin shell telah menyediakan keyword function seperti pada bahasa C, akan tetapi ini bersifat optional (artinya boleh digunakan boleh tidak). syntax:
function nama_fungsi() { perintah; }
nama_fungsi adalah pengenal (identifier) yang aturan penamaannya sama
seperti pemberian nama variabel, setelah fungsi dideklarasikan atau
dibuat anda dapat memaggilnya dengan menyebutkan nama fungsinya. lebih
jelasnya lihat contoh script fungsi1 berikut:
#!/bin/bash
function say_hello() {
echo "Hello, apa kbabar"
}
#panggil fungsi
say_hello;
#panggil sekali lagi
say_hello;
Hasilnya: [fajar@linux$]./fungsi1 Hello, apa khabar Hello, apa khabar
jika keyword function disertakan maka kita boleh tidak menggunakan tanda kurung (), tetapi jika keyword function tidak disertakan maka tanda kurung harus digunakan, lihat contoh berikut:
#!/bin/bash
function say_hello{
echo "Hello,apa khabar"
}
balas(){
echo "Baik-baik saja";
echo "Bagaimana dengan anda ?";
}
#panggil fungsi say_hello
say_hello;
#panggil fungsi balas
balas;
Hasilnya:
[fajar@linux$]./fungsi2
Hello, apa khabar
Baik-baik saja
Bagaimana dengan anda ?
merupakan bagian script atau program yang berisi kumpulan beberapa statement yang melaksanakan tugas tertentu. dengan subrutin kode script kita tentunya lebih sederhana dan terstruktur, karena sekali fungsi telah dibuat dan berhasil maka akan dapat digunakan kapan saja kita inginkan. beberapa hal mengenai fungsi ini adalah:
· Memungkinkan kita menyusun kode script ke dalam bentuk modul-modul kecil yang lebih efisien dengan tugasnya masing-masing.
· Mencegah penulisan kode yang berulang - ulang.
untuk membuat subrutin shell telah menyediakan keyword function seperti pada bahasa C, akan tetapi ini bersifat optional (artinya boleh digunakan boleh tidak). syntax:
function nama_fungsi() { perintah; }
nama_fungsi adalah pengenal (identifier) yang aturan penamaannya sama
seperti pemberian nama variabel, setelah fungsi dideklarasikan atau
dibuat anda dapat memaggilnya dengan menyebutkan nama fungsinya. lebih
jelasnya lihat contoh script fungsi1 berikut:
#!/bin/bash
function say_hello() {
echo "Hello, apa kbabar"
}
#panggil fungsi
say_hello;
#panggil sekali lagi
say_hello;
Hasilnya: [fajar@linux$]./fungsi1 Hello, apa khabar Hello, apa khabar
jika keyword function disertakan maka kita boleh tidak menggunakan tanda kurung (), tetapi jika keyword function tidak disertakan maka tanda kurung harus digunakan, lihat contoh berikut:
#!/bin/bash
function say_hello{
echo "Hello,apa khabar"
}
balas(){
echo "Baik-baik saja";
echo "Bagaimana dengan anda ?";
}
#panggil fungsi say_hello
say_hello;
#panggil fungsi balas
balas;
Hasilnya:
[fajar@linux$]./fungsi2
Hello, apa khabar
Baik-baik saja
Bagaimana dengan anda ?
Tidak ada komentar:
Posting Komentar