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 strstr2 …..strdo

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 nratau nilai 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



Mengupload: 10765 dari 10765 byte diupload.

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 angka 2 akan menampilkan tanggal pada saat ini
Jika menginputkan angka 3 akan menampilkan kalender bulan saat ini

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”

……

……

Analisa :
Gambar di atas merupakan program copy file, dimana pada gambar di atas jika file tidak berhasil ditemukan maka nantinya akan langsung di close. Untuk pilihan digunakan perintah if else then, tetapi karena perintah pertama pada shell script salin.sh menyatakan jika file tidak ada maka akan di close, dan memang si file ini tidak ada, sehingga perintah yang dikerjakannya pada saat shell script dieksekusi menggunakan perintah . Salin.sh adalah perintah pilihan nomor 1 yaitu “keluar” karena tidak ada filenya dan tampil seperti gambar di atas.

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 pph.sh dengan memasukan perintah yang ada pada gambar di atas. Gunaka tombol Esc ‘:’ dan wq untuk keluar dari shell dan menyimpan. Kemudian jalankan pph.sh dengan perintah bash pph.sh dan untuk debugging untuk melakukan tracing (debug) gunakan opsi –x pada eksekusi shell, maka hasilnya tampil seperti gambar di atas.


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 startstopstatusrestartdan reloadIsi 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