Nama
: Hafizt Maulana Ghojali
Nim : 201181072
seksi
: 03
Mata Kuliah : Sistem Operasi
Pemrogramman Shell
· Dasar-dasar Shell Programming
· Variabel pada shell
· Manajemen Input dan Output pada Shell
· Struktur Kontrol Pada Shell
· Array pada Shell
·` Function pada Shell
1. Dasar-dasar Shell Programming
· 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.
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.
hampir sama, bedanya jika file sudah ada maka isinya akan ditambah di akhir file.
cat < data
file data dijadikan input oleh perintah cat
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 :-)
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
tampilkan semua file yang dimulai dengan i
ls i?i
tampilkan file yang dimulai dengan i, kemudian sembarang karakter tunggal, dan diakhiri dengan 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
tampilkan file yang dimulai dengan salah satu karakter a atau b
2. Variabel pada shell
1. Environment
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\$"), PS2untuk 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
[hafizt@linux$]PS1LAMA=$PS1
sekarang masukkan string yang diinginkan pada variabel PS1
[hafizt@linux$]PS1="Hi
ini Promptku!"
i ini
Promptku!PS2="Lengkapi dong ? "
maka prompt pertama dan kedua akan berubah, untuk mengembalikan PS1 anda ke
prompt semula ketikkan perintah
[hafizt@linux$]PS1=$PS1LAMA
contoh pemakaiannya:
[hafizt@linux$]PS1="[\t][\u@\h:\w]\$"
2. Positional
Parameter
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
[hafizt@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:
[hafizt@linux$]./argumen 1 2 3 empat
Nama script anda : ./argumen
Banyak argumen : 4
Argumennya adalah : 1 2 3 empat
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
·
Manajemen Input dan Output pada Shell
Input dan Output pada shell
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
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:
[hafizt@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 diinputtoh
-d menentukan karakter pembatas masukan
informasi secara lengkap lihat man bash
3. Output dengan konstanta ANSI
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:
[hafizt@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:
[hafizt@linux$]PS1="\033[34m"
[hafizt@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,dst
lain-lain
4 underscore,5 blink, 7 inverse
tentunya untuk mendapatkan tampilan yang menarik anda dapat menggabungkannya antara foreground dan background
[hafizt@linux$]echo -e "\033[31;1;33m Bash and ansi color\033[0m"
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:
[hafizt@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 diinputtoh
-d menentukan karakter pembatas masukan
informasi secara lengkap lihat man bash
3. Output dengan konstanta ANSI
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:
[hafizt@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:
[hafizt@linux$]PS1="\033[34m"
[hafizt@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,dst
lain-lain
4 underscore,5 blink, 7 inverse
tentunya untuk mendapatkan tampilan yang menarik anda dapat menggabungkannya antara foreground dan background
[hafizt@linux$]echo -e "\033[31;1;33m Bash and ansi color\033[0m"
Struktur Kontrol Pada Shell
Seleksi
1. 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:
[hafizt@linux$]./if1
Usage : ./if1 [arg1 arg2 ...]
statement dalam blok if...fi akan
dieksekusi apabila kondisi if terpenuhi, 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 1 akan 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
[hafizt@linux$]./if2
Password anda : bash
Sukses, anda layak dapat linux
[hafizt@linux$]./if2
Password anda : Bash
Wah sorry, gagal nih
klausa else akan dieksekusi jika if
tidak terpenuhi, sebaliknya jika if terpenuhi 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
2. statement builtin case
seperti halnya if statement case
digunakan untuk menyeleksi kondisi majemuk, dibanding if, pemakaian case terasa
lebih efisien
syntax:
case WORD in [ [(] PATTERN [|
PATTERN]...) COMMAND-LIST ;;]...
esac
contoh script cs1
#!/bin/bash
clear
echo -n "Masukkan nama binatang
:";
read binatang;
case $binatang in
pinguin | ayam |
burung ) echo "$binatang berkaki 2"
break
;;
onta | kuda |
anjing ) echo "$binatang berkaki 4"
break
;;
*) echo
"$binatang blom didaftarkan"
break
;;
esac
Hasilnya:
[fajar@linux$]./cs1
Masukkan nama binatang : pinguin
pinguin berkaki 2
2. Perulangan
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 ke var dan ditampilkan menggunakan echo $var
ke layar, mendingan gunakan cat /etc/passwd saja biar efisien. :-)
3. statement while
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 2 menghasilkan 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 pencacah bil_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 dari 0 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/Tsaja yang dapat diterima soalnya saya belum mendapatkan fungsi yang
lebih efisien :-)
statement until
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=1 dan akan berhenti apabila nilai i = 11
(bernilai benar) 11 -gt 10.
statement select
select berguna untuk pembuatan layout
berbentuk menu pilihan, anda lihat contoh script pembuatan menu diatas kita
hanya melakukannya dengan echo secara 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:
[hafizt@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:
[hafizt@linux$]./array2
Banyak hari dalam bulan November adalah 30 hari
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:
[hafizt@linux$]./fungsi2
Hello, apa khabar
Baik-baik saja
Bagaimana dengan anda ?
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:
[hafizt@linux$]./fungsi2
Hello, apa khabar
Baik-baik saja
Bagaimana dengan anda ?
Tidak ada komentar:
Posting Komentar