Pengertian dan Macam-Macam Sintaks Pada Bash Shell

SHELL BASH

          Pengertian Bash Shell adalah bahasa penerjemah atau comand language interpreter untuk sistem operasi linux. Nama dari BASHSHELL meruapkan kepanjangan dari Bourne-Again SHell yang diambil dari nama Stephen Bourne sang pembuat dan penggagas Unix Shell sh. 

              Secara spesifik, Bash merupakan project yang dikembangkan oleh GNU. Bash menjadi shell linux yang default. Artinya linux menggunakan Bash sebagai shellnya secara umum.

Berikut Macam-macam sintaks pada bash shell :

• Input/Output

1. Output dengan printf
Contoh:

#!/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:

[arif@linuxubuntu$] bash pr1 ( atau bisa ./pr )

Hi, Pake printf ala C
di bash
My url pemula.linux.or.id
32 decimal = 40 octal
32 decimal dalam float = 32.00
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.

Contohnya:

#!/bin/bash

#rd1
echo -n “Nama anda :”
read nama;
echo “Hi $nama, apa khabarmu”;
echo “Pesan dan kesan :”;
read
echo “kata $nama, $REPLY”;

Hasilnya:

[arif@linuxubuntu$] bash rd1

Nama anda : pinguin
Hi pinguin, apa khabarmu
Pesan & kesan :
pake linux pasti asyk – asyk aja
kata pinguin, pake linux pasti asyk – asyk aja

• Seleksi

1. If
Statement builtin if berfungsi untuk melakukan seleksi berdasarkan suatu kondisi tertentu
Sintaxnya:

if test-command1;
then
perintah1;
elif test-command2;
then
perintah2;
else
alternatif_perintah;
fi

Contohnya:

#!/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:

[arif@linuxubuntu$]bash if1

Usage : ./if1 [arg1 arg2 ...]

2. Case

Seperti halnya if statement case digunakan untuk menyeleksi kondisi majemuk, dibanding if, pemakaian case terasa lebih efisien.
Sintaxnya:

case WORD in [ [(] PATTERN [| PATTERN]…) COMMAND-LIST ;;]…
esac

Contohnya:
#!/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:
[arif@linuxubuntu$]bash cs1

Masukkan nama binatang : pinguin
pinguin berkaki 2

• Perulangan

1. For

Sintax:
for NAME [in WORDS ...]; do perintah; done

Contohnya:
#!/bin/bash

for angka in 1 2 3 4 5;
do
echo “angka=$angka”;
done

Hasilnya:
[arif@linuxubuntu$]bash for1
angka=1
angka=2
angka=3
angka=4

2. While
Selama kondisi bernilai benar atau zero perintah dalam blok while akan diulang terus

Syntaxnya:
while KONDISI; do perintah; done;

Contohnya:
#!/bin/bash

i=1;
while [ $i -le 10 ];
do
echo “$i,”;
let i=$i+2;
done

Hasilnya:
[arif@linuxubuntu$]bash wh1

1,3,5,7,9,

3. 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

Contohnya:
#!/bin/bash

i=1;
until [ $i -gt 10 ];
do
echo $i;
let i=$i+1
done

Hasilnya:
[arif@linuxubuntu$]bash ut

1,2,3,4,5,6,7,8,9,10,

4. 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.
Syntaxnya:
select varname in (&ltitem list>); do perintah; done

Contohnya:
#!/bin/bash
#menu1

clear
select menu
do
echo “Anda memilih $REPLY yaitu $menu”
done

Hasiilnya:
[arif@linuxubuntu$]bash menu1 Slackware Redhat Mandrake

1) Slackware
2) Redhat
3) Mandrake
#? 1
Anda memilih 1 yaitu Slackware

• Array

Array 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 :

[arif@linuxubuntu$] bash 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:

[arif@linuxubuntu$]bash 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:

[arif@linuxubuntu$]bash array3

0 2 4 6 8

Komentar

Postingan Populer