Pemrograman Shell II
LAPORAN PRAKTIKUM
SISTEM OPERASI LINUX
Tentang :
PEMROGRAMAN SHELL II
Oleh :
Nama : Jeffri Aprian Purba
NIM : 180342036
Kelas : BM-5A
POLITEKNIK NEGERI JAKARTA
JURUSAN TEKNIK ELEKTRO
PRODI BROADBAND MULTIMEDIA
2020
8 INSTRUKSI TEST
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.
· Operator untuk test
Operator | 0 atau TRUE, jika | |
string1 = | string2 | Identical |
string1 != | string2 | Not identical |
-n string |
| String is not null |
-z string |
| String is null |
· Test untuk files dan directory
Test dapat dilakukan untuk memeriksa apakah file ada (Exist), dapat dibaca, dapat ditulis, kosong dan lainnya.
Untuk memudahkan pembacaan (readability), test dapat ditulis dengan
[ ekspresi ]
[ sebenarnya adalah nama lain dari test, bedanya [ akan mencari kurung penutup ] pada akhir ekspresi yang harus dipisahkan oleh spasi.
9 LOGICAL && DAN || (SHELL LEVEL)
Notasi && dan || digunakan untuk menggabungkan instruksi shell sebagai alternatif untuk if then else. Notasi && dan || sering ditemukan adalah shell script system administrator untuk menjalankan routine dari system operasi.
· instruksi1 && instruksi2
shell akan mengeksekusi instruksi1, dan bila exit status instruksi1 adalah FALSE, maka hasil dari AND tersebut sudah pasti sama dengan FALSE, sehingga instruksi2 tidak mempunyai pengaruh lagi. Oleh karena itu, instruksi2 tidak dijalankan. Sebaliknya bila hasil instruksi1 adalah TRUE(0), maka instruksi2 dijalankan
· instruksi1 || instruksi2
shell akan menge ksekusi instruksi1, bila exit status adalah TRUE(0), hasil dari operasi OR tersebut sudah pasti menghasilkan TRUE, terlepas dari hasil eksekusi instruksi2. Oleh karena itu instruksi2 tidak perlu dijalankan. Bila hasil instruksi1 adalah FALSE, maka instruksi2 akan dijalankan.
10 OPERATOR BILANGAN BULAT UNTUK TEST
Untuk membandingkan 2 buah bilangan, test memerlukan operator yang berbeda dengan string.
Operator 0 atau TRUE, jika | |||
i1 i1 i1 i1 i1 i1 | –eq –ge –gt –le –lt –ne | i2 i2 i2 i2 i2 i2 | Bilangan sama Lebih besar atau sama dengan Lebih besar Lebih kecil atau sama dengan Lebih kecil Bilangan tidak sama |
11 OPERATOR LOGICAL (TEST LEVEL)
Logical operator terdiri dari AND, OR dan NOT. Operator ini menggabungkan hasil ekspresi sebagai berikut :
NOT : symbol !
| ! |
True | False |
False | True |
AND : symbol -a
V1 | V2 | V1 –a V2 |
False | False | False |
False | True | False |
True | False | False |
True | True | True |
OR : symbol -o
V1 | V2 | V1 –o V2 |
False | False | False |
False | True | True |
True | False | True |
True | True | True |
12 KONSTRUKSI IF THEN ELSE IF
if instruksi1 then instruksi1.1 instruksi1.2 ……………… elif instruksi2 then
instruksi2.1 instruksi2.2 ……………… else instruksi3.1 instruksi3.2 ……………… fi |
Bila status exit tidak sama dengan 0, maka kondisi menjadi FALSE dan instruksi setelah else akan dijalankan.
13 HITUNGAN ARITMETIKA
Tipe dari variable SHELL hanya satu yaitu STRING. Tidak ada tipe lain seperti Numerik, Floating, Boolean ata u lainnya. Akibatnya variable ini tidak dapat membuat perhitungan aritmetika, misalnya :
A=5
B=$A +1 ## error
UNIX menyediakan utilitas yang bernama expr yaitu suatu utilitas yang melakukan aritmetika sederhana.
14 INSTRUKSI EXIT
Program dapat dihentikan (terminated/selesai) dengan instruksi exit. Sebagai nilai default program tersebut akan memberikan status exit 0.
15 KONSTRUKSI CASE
case variable in match1) instruksi1.1 instruksi1.2 ……………… ;; match2) instruksi2.1 instruksi2.2 ……………… ;; *) instruksi3.1 instruksi3.2 ……………… ;; esac |
Case digunakan untuk menyederhanakan pemakaian if yang berantai, sehingga dengan case, kondisi dapat dikelompokkan secara lo gis dengan lebih jelas dan mudah untuk ditulis.
Case diakhiri denan esac dan pada setiap kelompok instruksi diakhiri dengan ;;. Pada akhir pilihan yaitu *) yang berarti adalah “default”, bila kondisi tidak memenuhi pola sebelumnya
16 KONSTRUKSI FOR
For digunakan untuk pengulangan dengan menggunakan var yang pada setiap pengulangan akan diganti dengan nilai yang berada pada daftar (list).
for var in str1 str2 …..strn do instruksi1 instruksi2 ……………… done |
17 KONSTRUKSI WHILE
While digunakan untuk pengulangan instruksi, yang umumnya dibatasi dengan suatu kondisi. Selama kondisi tersebut TRUE, maka pengulangan terus dilakukan. Loop akan berhenti, bila kondisi FALSSE, atau program keluar dari blok while melalui exit atau break.
while kondisi do instruksi1 instruksi2 ……………… done |
18 INSTRUKSI DUMMY
Instruksi dummy adalah instruksi yang tidak melakukan apa -apa, namun instruksi ini memberikan status exit 0 (TRUE). Oleh karena itu, instruksi dummy dapat digunakan sebagai kondisi forever pada loop (misalnya while).
Simbol instruksi dummy adalah Þ :
19 FUNGSI
Fungsi adalah program yang dapat dipanggil oleh program lainnya dengan menggunakan notasi NamaFungsi(). Fungsi memberikan exit status ($?) yang dinyatakan dengan return nr, atau nilai 0 sebagai default.
Membuat fungsi diawali dengan nama fungsi, parameter, kemudian blok program yang dinyatakan dalam { … }.
Contoh :
F1( ) {
……..
…….. return 1
}
Variabel dapat didefinisikan dalam fungsi sebagai variable local atau global.
Hal yang perlu diperhatikan, nama variable yang digunakan dalam sebuah fungsi,
jangan sampai bentrok dengan nama variable yang sam adi luar fungsi, sehingga tidak terjadi isi variable berubah.
TUGAS PENDAHULUAN :
Sebagai tugas pendahuluan, bacalah dasar teori diatas kemudian buatlah program Shell untuk Latihan 1 sampai dengan 5.
PERCOBAAN:
1. Login sebagai user.
2. Bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian analisa hasil percobaan.
3. Selesaikan soal-soal latihan.
Percobaan 8 : Intruksi
Teks
1. Menggunakan intruksi test, perhatikan spasi antara seperti pada gambar dibawah ini.
Analisa :
Pada percobaan ini sebuah spasi antar variable dapat menentukan terbaca atau tidaknya
2. Aplikasi
test dengan kontruksi if, masukkan script seperti dibawah menggunakan editor
nano
Berikan nama pada program shell yang telah
dibuat dengan nama prog06.sh
Analisisnya :
Di sini kita menggunakan perintah “if” dan “else”. Ini di gunakan untuk. Jika program mengalami kesalahan makan pertintah kedua yang akan mengerjakannya nanti.
3. Jalankan
program prog06.sh dengan memasukkan NAMA = amir dan NAMA = <CR>
perhatikan hasil tampilannya.
Analisanya
:
Pada string pertama tidak ada pesan error dan berjalan semestinya karena memasukkan variabel nama “amir” yang telah diatur pada program shell sebagai nama yang diinginkan dan pada string ke 2 terjadi pesan error karena memasukkan variable <CR> bukan amir, jika hanya mengeksekusi prog06.sh lalu memasukkan variable <CR>, tidak akan terjadi pesan error dan program shell akan menampilkan kata “anda bukan amir, sorry!”.
4.
Modifikasi
prog06.sh dengan menggunakan notasi untuk test
Analisanya :
Program masih bisa berjalan tanpa ada test akan tetapi harus di tambahkan tanda buka dan tutup kurung ”[ ]”.
5.
Jalankan program prog06.sh dengan
memasukkan NAMA = amir
Analisanya
:
Perintah
masih bisa di jalankan dengan baik dan sucses walaupun di dalam file tidak ada
test sebagai perintahnya karena terdapan tanda kurung yang menggantikan
fungsinya.
Percobaan 9 : Notasi && dan ||
1. Bila
file prog01.sh ada (TRUE), maka jalankan program
berikutnya. File prog01.sh ada, karena itu status exit adalah TRUE, hasil operasi AND masih tergantung pada hasil
eksekusi intruksi ke 2 dan dengan demikian intruksi echo akan dijalankan.
Analisanya :
Jika ada file yang kita buat di dalam diktory maka perintah dapat di peroses.
2. Masukkan perintah seperti gambar dibawah.
Analisanya :
File prog99.sh tidak ada, karena itu status ext adalah FALSE dan intruksi echo tidak dijalankan.
3. Jika
prog01.sh ada maka jalankan shell
script tersebut.
Analisanya :
Karena prog01.sh
memang ada maka program shell
dapat dijalankan sesuai dengan script yang dimasukkan.
4. Jika
prog01.sh
ada, maka jalankan program berikutnya.
Analisanya :
File prog01.sh memang ada karena itu status exit adalah TRUE dan karena sudah TRUE maka instruksi echo tidak lagi dijalankan.
5. Masukkan
script seperti gambar dibawah
Analisanya :
Sebab
prog99.sh
memang tidak ada karena itu status exit adalah FALSE, hasilnya tergantung instruksi status exit sehingga intruksi
bisa echo dijalankan, yang
menampilkan variable “Dieksekusi tidak?”.
6. Masukkan
perintah seperti dibawah ini.
Analisanya :
File prog99.sh tidak ada maka
akan mengeksekusi perintah echo yang
menampilkan variable “Sorry, prog09.sh
tidak ada”.
Percobaan
10 : Operator Bilangan Bulat untuk Test
1.
Menggunakan operator dengan notasi test
Analisanya
:
Pada percobaan kali ini menggunakan operator dengan notasi test. Jika “i” sama dengan string maka sukses akan tetapi jika berbeda
maka akan menghasilkan 1 berarti tidak berhasil di jalankan
2.
Menggunakan
operator dengan notasi [ ] (pengganti notasi test).
Analisanya
:
Pada percobaan kali ini kita
menggunakan operator dengan notasi [ ] (penganti notasi test). Disini hasilnya akan sama saja dengan percobaan 10
nomor 1 jika di jalankan. Perbedaannya Cuma menggunakan operator dengan notasi
[ ].
Percobaan
11 : Operator Logical dan Konstruktor
Elif
1. Buatlah
file prog07.sh
dengan editor nano, seperti dibawah.
Analisanya :
Pada percobaan ini kita membuat program
shell dengan konstruktor elif yaitu
intruksi yang digunakan untuk membuat instruksi if ganda. Sehingga kita bisa memasukkan variable syarat lebih dari
2 variabel.
2.
Jalankan perintah file
prog07.sh lalu masukkan untuk INCOME = 5000, 20000, 28000

Percobaan
12 : Hitungan Aritmatika
1. Menggunakan
utilitas EXPR
Analisanya :
Percobaan kali ini menggunakan intruksi EXPR yang berfungsi untuk hitungan
aritmatika, tetapi untuk perkalian diperlukan tanda garis miring terbalik “\”
sehingga tidak terjadi pesan error.
2. Subtitusi
isi variable dengan hasil utilitas EXPR.
Percobaan
13 : Instruksi Exit
1.
Buatlah shell script prog08.sh dengan editor nano
Analisanya :
Pada percobaan ini membuat program shell dengan intruksi
atau perintah if dan else untuk keluar dari terminal.
2.
Jalankan script prog08.sh
dan
periksa status exit
Analisanya :
Program shell diatas berfungsi untuk keluar dari terminal
pada Linux.
Percobaan
14 : Konstruksi Case – Esac
1.
Buatlah file prog09.sh dengan editor nano.
Analisanya :
Percobaan ini membuat program shell dengan perintah CASE diawal
dan diakhiri dengan perintah ESAC yang jika dieksekusi akan menampilkan pilihan
yang dapat kita pilih dengan menginputkan angka 1, 2, 3, atau tanda *.
2.
Jalankan program prog09.sh cobalah beberapa kali dengan inputan
yang berbeda dengan diawali dengan perintah $ . prog09.sh
Jika memilih menginputkan angka 1 akan tampil user yang
sedang aktif
Jika menginputkan tanda * akan
menampilkan variable “Salah
pilih !!”
Analisanya :
Dengan menambahkan perintah CASE dan ESAC pada program
shell, dapat membuat program shell tersebut jika dieksekusi menampilkan pilihan
dan apa yang akan ditampilkan selanjutnya tergantung pada angka atau tanda apa
yang diinputkan.
3.
Buatlah file prog10.sh yang merupakan bentuk lain dari CASE
dengan editor nano.
Analisanya :
Program shell yang didalamnya perintah CASE. Variable dari ya adalah y dan variable dari tidak adalah t, tergantung kita memilih yang mana.
4.
Jalankan program prog10.sh cobalah beberapa kali dengan
inputan yang berbeda
Analisanya :
Ketika mengeksekusi prog10.sh dan menginputkan ya atau
tidak akan menampilkan variable yang berbeda. Dimana y adalah ya dan d adalah
tidak.
5.
Modifikasi file prog10.sh yang merupakan bentuk lain dari
CASE
Analisanya :
Program diatasa merupakan bentuk lain dari CASE dan ESAC
yang mengunakan cara penulisan yang berbeda yaitu dengan tanda kurung [ ]. Pada
program diatas digunakan untuk menyamakan antara karakter “y” dan “Y” pada
input ya atau karakter “t” dan “T” pada input tidak.
6.
Jalankan program prog10.sh, cobalah beberapa kali input yang
berbeda
Analisanya :
Dengan memasukkan input yang berbeda seperti “t” maupun “y”
akan menghasilkan tampilan variable yang berbeda. Tetapi tidak berlaku untuk
huruf selain “t” dan “y” sehingga akan muncul pesan error.
Percobaan
15 : Konstruksi For –Do –Done
1.
Buatlah file prog11.sh dengan editor nano.
Analisanya :
Percobaan diatas merupakan program shell yang terdapat
perintah for –do –done sebagai
perulangan. Dinotasikan dengan FOR
pada awal baris lalu nama variable kemudian IN dilanjutkan dengan nilai variable. Instruksi DO akan melakukan apa yang akan diulang
dengan bantuan ECHO sebanyak nilai yang dituliiskan. Selanjutnya perulangan
ditutup oleh intruksi DONE.
2. Jalankan program prog11.sh
Analisanya :
File prog11.sh ketika dieksekusi akan menampilkan
perulangan dimana variable (Nama
adalah :)
ditampilkan sebanyak nilai variable (bambang,
harry, kadir, amir)
yang ada dalam waktu yang bersamaan.
3. Buatlah file prog12.sh yang berisi konstruksi for dan wildcard
Analisanya :
Percobaan diatas adalah program shell yang akan menampilkan
nama file yang berada di current direktori dengan menggunaka tanda * sebagai
nilai variable.
4.
Jalankan program prog12.sh
Analisanya :
Setelah dieksekusi prog12.sh akan menampilkan seluruh file yang ada pada direktori karena tanda * mewakili semua file meskipun berbeda format dan ekstensi.
5.
Modifikasi file prog12.sh, seperti gambar dibawah
Analisanya :
Percobaan diatas
adalah program yang akan menampilkan semua long list dan file yang
mempunyai ekstensi .lst sebab menggunkan tanda * yang merepresentasi semuanya.
Selain itu, dari percobaan diatas kita dapat mengetahui bahwa instuksi For –Do
–Done juga dapat digunakan untuk menampilkan tidak hanya semua isi direktori
tetapi juga bisa hanya menampilkan file – file bereksistensi tertentu.
6.
Jalankan program prog12.sh
Analisanya :
Program shell prog12.sh setelah dieksekusi tidak berhasil
menemukan file bereksistensi .lst sebab pada direktori memang tidak memiliki
file ekstensi .lst
Percobaan
16 : Konstruksi While –Do –Done
1. Buatlah
file prog13.sh dengan editor nano
Analisanya :
Program shell diatas menggunakan instruksi
While –Do –Done yang mirip denga IF yang mana akan memberikan kondisi
bernilai TRUE kemudian DO akan mengeksekusi didalamnya yang diakhiri
oleh instruksi DONE.
2. Jalankan program prog13.sh
Analisanya :
Program shell prog13.sh setelah diamati kita akan
mengetahui jika didalam perulangan terdapat percabangan yaitu apabila yang
dipilih 4 maka akan selesai namun jika bukan 4 maka akan menjalankan perintah
clear atau menampilkan inputan lagi.
Percobaan
17 : Instruksi Dummy
1. Memodifikasi file prog13.sh, seperti script
dibawah
Analisanya :
Program shell yang dimodifikasi diatas
tidak merubah apapun hanya memberikan status exit 0 (TRUE).
2. Jalankan program prog13.sh
Analisanya :
Setelah dieksekusi prog13.sh tidak terjadi perubahan apapun kerena modifikasi
sebelumnya hanya untuk merubah status exit menjadi 0 sebab menggunakan tanda
(:).
3. Buatlah
program prog14.sh
Analisanya :
Percobaan ini adalah program shell yang
berisi instruksi dummy yang digunakan untuk konstruksi IF.
4. Jalankan program prog14.sh beberapa kali
dengan input yang berbeda
Analisanya :
Setelah program prog14.sh
dieksekusi kita dapat memasukkan beberapa inputan yang berbeda sehingga dapat
diketahui bahwa programnya menggunakan perintah percabang IF yaitu jika nilai >= 100 maka tidak menampilkan apapun namun
jika nilai <= 100 akan muncul “OK !”.
Percobaan
18 : Fungsi
1. Buatlah
file fungsi.sh
Analisanya
:
Kita
dapat membuat suatu fungsi dengan cara nama ( ) { perintah dari fungsi } dan
untuk memanggilnya kita hanya menuliskan nama fungsi tersebut.
2. Jalankan
program fungsi.sh
Analisanya :
Setelah program dieksekusi maka akan
menampilkan nilai dari fungsi tersebut. Fungsi adalah program yang dipanggil
oleh program lainnya dengan notasi NamaFungsi(). Dimana status exit $? Bisa
dinyatakan dengan return 1 atau nilai 0 sebagai default.
3. Menggunakan
variable pada fungsi dengan memodifikasi file fungsi.sh
Analisanya
:
Program diatas kita membuat fungsi F1 yang memiliki variabel honor dengan nilai 1000. Fungsi diatas memberikan status exit $? Yang dinyatakan dengan return 1.
4. Jalankan
program fungsi.sh
Analisisnya :
Dengan mengeksekusi program fungsi.sh
yang telah dimodifikasi kita dapat memanggil variable fungsi F1 dan
jika berhasil maka status exit adalah 0 dan manampilkan Honor = 10000.
5. Menggunakan
variable pada fungsi dengan memodifikasi file fungsi.sh
Analisanya :
Program yang dimodifikasi membuatnya
memiliki variable yang bersifat LOCAL.
6. Jalankan
program fungsi.sh
Analisanya :
Dapat diketahui setelah program dieksekusi walaupun
bersifat LOCAL, variable tersebut
tetap bisa dipanggil dari luar fungsi.
LATIHAN:
1. Buatlah program salin.sh yang menyalin file (copy ) sebagai berikut :
salin.sh file-asal file-tujuan
Dengan ketentuan :
· Bila file asal tidak ada, berikan pesan, salin gagal.
· Bila file tujuan ada dan file tersebut adalah directory, beri pesan bahwa file tida k bisa disalin ke direktori
· Bila file tujuan ada dan file biasa, beri pesan apakan file tersebut akan dihapus, bila dijawab dengan “Y”, maka copy file tersebut
· Bila file tujuan belum ada, lakukan copy
Untuk mengambil nama file, gunakan parameter $1 dan $2. Bila jumlah parameter tidak sama ($#) dengan 2, maka beri pesan exit = -1
#!/bin/sh
# file: salin.sh
# Usage: salin.sh fasal ftujuan if [ $# -ne 2]
then
echo “Error, usage: salin.sh file-asal file-tujuan”
exit –1
fi
fasal=$1 ftujuan=$2
echo “salin.sh $fasal $ftujuan”
……
……
2. Buat program yang memeriksa nama direktori, jika parameter tersebut adalah direktori, maka jalankan instruksi ls – ld pada direktori tersebut. Namakan program tersebut checkdir.sh. Gunakan notasi [ -d NamaDirektori ] dan pilih logic al && atau || pada level shell.
#!/bin/sh
# file: checkdir.sh
# Usage: checkdir.sh DirectoryName #
if [ $# -ne 1] then
echo “Error, usage: checkdir.sh DirectoryName” exit 1
fi
[ … ] && …
Analisa :
Gambar di atas merupakan program memeriksa nama direktori. Seperti yang terjadi pada latihan no. 1 tadi, ketika dijalankan program checkdir.sh ini tidak menemukan directory yang di cari sehingga secara otomatis akan di “closed” atau exit dan tampil seperti gambar di atas.
3. Dengan shell script pph.sh, hitung PPH per tahun dengan ketentuan sebagai berikut:
- 10 juta pertama PPH 15%
- 25 juta berikutnya (sisa) PPH 25%
- Bila masih ada sisa, maka sisa tersebut PPH 35% Contoh :
Gaji 8 juta
PPH = 15% * 8 juta
Gaji 12 juta
PPH =15% * 10 juta + 25% * (12-10) juta
Gaji 60 juta
PPH = 15% * 10 juta + 25% * 25 juta + 25% * (60-10-25) juta Debugging : untuk melakukan tracing (debug) gunakan opsi –x pada eksekusi shell.
$ sh –x pph.sh
+ echo –n ‘Berikan gaji dalam ribuan rupiah : ‘ Berikan gaji dalam ribuan rupiah : + read gaji 20000
+ pkp=10000
+ ‘[‘ 20000 –le 10000 ‘]’
++ expr 20000 – 10000
+ gaji=10000
+ pph=1500
+ pkp=25000
+ ‘[‘ 10000 –le 25000 ‘]’
+ pkp=10000
++ expr 1500 + 10000 ‘*’ 25 / 100
+ pph=4000
+ echo ‘Pajak Penghasilan = 4000’ Pajak Penghasilan = 4000
Analisis :
Gambar di atas merupakan shell script pph.sh, menghitung PPH per tahun dengan ketentuan 10 juta pertama PPH 15%, 25 juta berikutnya (sisa) PPH 25%, bila masih ada sisa, maka sisa tersebut PPH 35%. Untuk membuat sebuah file pph.sh gunakan perintah vi pph.sh. masuk ke shell dan buat sebuah perintah dalam vi
4. Buatlah program myprog.sh yang memproses parameter $1, nilai parameter harus berupa string :
start stop status restart reload
Bila buka dari string tersebut, maka berikan pesan error. Sempurnakan program di bawah ini untuk keperluan tersebut
#!/bin/sh
# See how we were called case “$1” in
start)
echo “Ini adalah start”
;;
stop)
echo “Ini adalah stop”
;;
*)
echo “Ini adalah stop”
;;
echo $”Usage:$0 {start|stop|restart|reload|status}”
;;
esac return
Analisis :
Gambar di atas merupakan tahapan membuat program myprog.sh yang memproses parameter $1, nilai parameter harus berupa string start, stop, status, restart, dan reload. Isi dari file myprog.sh dengan perintah untuk melakukan seleksi terhadap inputan yang dimasukan. Jika inputan yang dimasukan start, stop, status, restart, atau reload maka akan muncul output seperti gambar di atas dan jika tidak, akan muncul informasi kesalahan dan tampil seperti gambar di atas.
5. Buat sebuah fungsi pada script confirm.sh yang memberikan konfirmasi jawaban Yes, No atau Continue. Jika jawaban Yes, maka beri nilai balik 0, No = 1 dan Continue = 2. Modifikasi kerangka program berikut untuk memenuhi permintaan tersebut.
#!/bin/sh
# Confirm whether we really want to run this service confirm() {
local YES=”Y” local NO=”N” local CONT=”C”
while : do
echo –n “(Y)es/(N)o/(C)ontinue? {Y] “ read answer
answer=`echo “$answer” | tr ‘[a-z]’ ‘[A-Z]’`
if [ “$answer” = “” –0 “$answer” = $YES ] then
return 0 elif ….
then
return 2 elif ….
then
return 1
fi
done
}
Test fungsi diatas dengan program berikut :
$ vi testp.sh
. confirm.sh confirm
if [ $? –eq 0 ] then
echo “Jawaban YES OK” elif [ $? =eq 1 ]
then
echo “Jawaban NO” else
echo “Jawaban CONTINUE”
fi
Perhatikan baris pertama, adalah loading dari fungsi confirm yang terdapat di script confirm.sh. Setelah eksekusi script tersebut, maka fungsi confirm dapat digunakan.
Analisis
Gambar di atas merupakan latihan nomer 5 yaitu membuat sebuah fungsi pada script confirm.sh yang memberikan konfirmasi jawaban Yes, No atau Continue. Jika jawaban Yes, maka beri nilai balik 0, No = 1 dan continue = 2 serta memodifikasi program tersebut. Pada perintah yang terdapat di modul tidak bisa dijalankan, sehingga digunakan modifikasi terhadap isi perintah. Lalu digunakan perintah elif seperti yang terlihat pada gambar di atas, dan ketika dijalankan hasilnya akan tampil seperti di atas dengan output tulisan “Jawaban YES OK”.
Kesimpulan
:
Shell
script dapat dibuat dengan editor nano dan umumnya berektensi “.sh” serta
variable shell adalah variable shell adalah variable yang dapat mempunyai nilai
berupa nilai String. Variable harus dimulai dengan alphabet, disusul dengan
alfa numeric dan karakter lain. Variable dapat ditulis dalam huruf kecil atau
huruf besar atau campuran keduanya. Nilai variable dapat diisi melalui keyboard
(stdin) dengan instruksi read.
Setiap
program setelah selesai dieksekusi akan memberikan informasi melalui variable
special $?. Indikasi yang diberikan adalah :
·
Bila program berakhir
dengan sukses, $? = 0
·
Bila program berakhir dengan
error, $? 0
Instruksi
test digunakan untuk memeriksa kondisi dari sebuah ekspresi. Ekspresi terdiri
dari faktor dan operator yang dipidahkan oleh spasi. Hasil test akan memberikan
nilai berupa status exit, yaitu 0 bila ekspresi sesuai, bila tidak maka hasil
adalah < > 0. Ada beberapa jenis operator, yaitu :
·
Operator untuk test
·
Test untuk file dan
direktori
·
LOGICAL && dan ||
·
Operator bilangan bulat
·
Operator Logical
Dalam
pemrogaman shell kita juga bisa menggunakan perintah percabangan IF, CASE, dan perulangan FOR,
WHILE, IN selain itu kita juga bisa membuat sebuah fungsi yang nantinya
bisa dipanggil oleh file.
Komentar
Posting Komentar