Perangkat Lunak Jaringan I SHELL SCRIPT 2
Perangkat Lunak Jaringan I PARAMETER Parameter posisional adalah sebuah nilai yang diberikan dimana nilai tersebut dianggap sebagai isi dari sebuah variabel dalam serangkaian argumen dari sebuah command line. Contoh berikut adalah gambaran dari definisi argumen : $ set bee ivo ant
Perangkat Lunak Jaringan I JENIS PARAMETER Shell memiliki beberapa simbol yang merupakan representasi dari posisi sebuah variabel dalam serangkaian argumen. Berikut ini simbol posisional parameter :
Perangkat Lunak Jaringan I CONTOH $ set bee ivo ant $ echo $* bee ivo ant $ echo $1 bee $ echo $# 3
Perangkat Lunak Jaringan I Setiap program setelah selesai dieksekusi akan memberikan informasi melalui variable spesial $?. Indikasi yang diberikan adalah : Bila program berakhir dengan sukses, $? = 0 Bila program berakhir dengan error, $? ≠ 0 Nilai dari status exit dapat dilihat melalui instruksi echo $? CONTOH : $ cp file1 file2 $ echo $? 0 $ cp nihil backup cp: nihil: No such file or directory $ echo $? 1 STATUS EXIT
Perangkat Lunak Jaringan I EVALUASI KONDISI Evaluasi kondisi dapat disebut juga dengan instruksi test Fungsi : melakukan testing satu kondisi atau lebih Instruksi test digunakan untuk memeriksa kondisi dari sebuah ekspresi. Ekspresi terdiri dari faktor dan operator yang dipisahkan oleh spasi. Hasil test akan memberikan nilai berupa status exit, yaitu 0 bila ekspresi sesuai, bila tidak maka hasil adalah ≠ 0.
Perangkat Lunak Jaringan I OPERATOR TEST STRING string null (test untuk string dengan panjang = 0) -z string string tidak null (test untuk string dengan panjang <> 0) -n string string1 tidak identik dengan string2 string1 != string2 string1 identik dengan string2string1 = string2 Menghasilkan exit status=0 jikaOperator
Perangkat Lunak Jaringan I CONTOH $ nama=DESI $ [ $nama = DESI ] $ echo $? 0 $ hari=kamis $ [ $hari = rabu ] $ echo $? 1
Perangkat Lunak Jaringan I OPERATOR INTEGER int1 tidak sama dengan int2int1 –ne int2 int1 < int2int1 –lt int2 int1 <= int2int1 –le int2 int1 > int2int1 –gt int2 int1 >= int2int1 –ge int2 int1 sama dengan int2int1 –eq int2 Menghasilkan exit status=0 jikaOperator
Perangkat Lunak Jaringan I CONTOH $ x1="005" $ x2=" 10" $ [ $x1 = 5 ] $ echo $? 1 $ [ $x1 –eq 5 ] $ echo $? 0 $ [ $x2 = 10 ] $ echo $? 1 $ [ $x2 –eq 10 ] $ echo $? 0
Perangkat Lunak Jaringan I OPERATOR TEST FILE File ada dan tidak kosong-s namafile file dapat dieksekusi (file adalah executeble) -x namafile file dapat ditulis-w namafile file dapat dibaca-r namafile file adalah symbolic link-L namafile file adalah direktori-d namafile file adalah file biasa-f namafile Menghasilkan exit status=0 jikaOperator
Perangkat Lunak Jaringan I CONTOH $ [ -f hasil ] $ echo $? 0 $ [ -d data ] $ echo $? 0
Perangkat Lunak Jaringan I OPERATOR LOGIKA Logical operator terdiri dari AND, OR dan NOT. Operator ini menggabungkan hasil ekspresi sebagai berikut : NOT : symbol ! OR : symbol -o AND : symbol -a TrueFalse True ! False TrueFalse True V2 FalseTrue V1 –a V2V1 False True False True V2 True V1 –o V2V1
Perangkat Lunak Jaringan I CONTOH OPERATOR LOGIKA CONTOH dari NOT : $ [ ! -f hasil ] $ echo $? 1 CONTOH dari AND : $ [ -f hasil -a -d data ] $ echo $? 0 CONTOH dari OR : $ [ -d hasil -o -d data ] $ echo $? 0
Perangkat Lunak Jaringan I OPERATOR ARITMATIKA 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.
Perangkat Lunak Jaringan I OPERATOR ARITMATIKA (1)Expr Bentuk umum : expr ekspresi Contoh : $ expr $ expr 17 * 6 expr: syntax error Contoh menggunakan variabel : $ i=4 $ i=`expr $i + 1` $ echo $i
Perangkat Lunak Jaringan I OPERATOR ARITMATIKA (2)Let Bentuk umum : let ekspresi Contoh : $ i=1 $ let i=i+1 $ echo i (3)(( )) Bentuk umum : ((ekspresi)) Contoh : $ i=1 $ ((i=i+1)) $ echo i
Perangkat Lunak Jaringan I STATEMENT IF Statement if berfungsi untuk melakukan seleksi berdasarkan suatu kondisi tertentu
Perangkat Lunak Jaringan I CONTOH STATEMENT IF CONTOH : #!/bin/bash if [ "foo" = "foo" ] then echo PERNYATAAN BENAR fi
Perangkat Lunak Jaringan I STATEMENT IF-THEN-ELSE
Perangkat Lunak Jaringan I CONTOH STATEMENT IF CONTOH : #!/bin/bash if [ "foo" = "foo" ] then echo PERNYATAAN BENAR else echo PERNYATAAN SALAH fi
Perangkat Lunak Jaringan I CONTOH LAIN KONDISI #!/bin/bash T1=foo T2=bar if [ $T1 = $T2 ] then echo PERNYATAAN BENAR else echo PERNYATAAN SALAH fi
Perangkat Lunak Jaringan I CONTOH LAIN KONDISI #!/bin/bash S1=Hallo S2=hallo if [ $S1 = $S2 ] then echo "S1('$S1') tidak sama dengan S2('$S2')“ fi if [ $S1 = $S1 ] then echo "S1('$S1') sama dengan S1('$S1')“ fi
Perangkat Lunak Jaringan I STATEMENT CASE Statement case digunakan untuk menyeleksi kondisi majemuk, dibanding if, pemakaian case terasa lebih efisien
Perangkat Lunak Jaringan I STATEMENT CASE
Perangkat Lunak Jaringan I CONTOH STATEMENT CASE CONTOH : echo -n “Masukkan nama binatang :” read binatang case $binatang in pinguin | ayam | burung ) echo “$binatang berkaki 2″ ;; onta | kuda | anjing ) echo “$binatang berkaki 4″ ;; *) echo “$binatang blom didaftarkan” ;; esac
Perangkat Lunak Jaringan I STATEMENT FOR Statement Perulangan
Perangkat Lunak Jaringan I CONTOH STATEMENT FOR CONTOH : $ cat > loop1 for angka in do echo “angka=$angka” done $ cat > loop2 for i do echo $i done
Perangkat Lunak Jaringan I STATEMENT WHILE Statement WHILE dijalankan selama kondisi bernilai benar atau zero perintah dalam blok while akan diulang terus
Perangkat Lunak Jaringan I Contoh STATEMENT WHILE CONTOH : $ cat > while i=1; while [ $i -le 10 ] do echo “$i,” let i=$i+2 done $ cat > true while true do echo "Hallo" done
Perangkat Lunak Jaringan I STATEMENT UNTIL Jika while akan mengulang selama kondisi benar, lain halnya dengan statement until yang akan mengulang selama kondisi salah until kondisi do INSTRUKSI1 INSTRUKSI2 …………….. done
Perangkat Lunak Jaringan I CONTOH STATEMENT UNTIL CONTOH : $ cat > until1 i=1 until [ $i -gt 10 ] do echo $i let i=$i+1 done $ cat > until2 until false do echo "Hallo" done
Perangkat Lunak Jaringan I $ cat > potong i=0 while [ $i -le 4 ] do let i=i+1 if [ $i = 3 ] then break fi echo $i done
Perangkat Lunak Jaringan I $ cat > lewat i=0 while [ $i -le 4 ] do let i=i+1 if [ $i = 3 ] then continue fi echo $i done