Praktikum 6-A Pemrograman Shell

 Praktikum 6-A


Pemrograman Shell

POKOK BAHASAN:

 

ü  Pemrograman Shell

TUJUAN BELAJAR:

Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:

ü  Mempelajari elemen dasar shell script

ü  Membuat program shell interaktif

ü  Menggunakan parameter dalam program

ü  Mempelajari test kondisi serta operator logic yang terkait dengan instruksi test

ü  Mengenal variable built-in dari shell

ü  Membuat aplikasi dengan shell menggunakan konstruksi if-then-else

ü  Menggunakan struktur case – esac.

ü  Loop dengan while, for, do while.

ü  Membuat fungsi dan mengetahui cara memanggil fungsi tersebut.


DASAR TEORI:

1       SHELL SCRIPT

Shell script dibuat dengan editor teks (ASCII editor) dan umumnya diberikan ekstensi “.sh”. Script selalu diawali dengan komentar, yang dimulai dengan tanda #, disambung dengan ! dan nama shell yang digunakan.

#!/bin/sh              

# Program shell        

#

var1=x                 ƒ

var2=8

1.  Awal dari program shell, komentar awal ini akan dibaca oleh system, kemudian  system mengaktifkan program shell (/bin/sh) yang tertera di situ. Program shell dapat dipilih, misalnya /bin/csh, /bin/ksh dan lainnya

2.  Adalah komentar, sebagai dokumentasi, baris ini akan diabaikan oleh program Shell

 

3.  Penggunaan variable (assignment), tidak boleh ada spasi di antara nama variable dan konstanta

2       VARIABEL

Variable shell adalah variable yang dapat mempunyai nilai berupa nilai String.

Tata penulisan variable adalah sebagai berikut :

nama_var = nilai_var

Variable harus dimulai dengan alfabet, disusul dengan alfanumerik dan karakter lain. Variabel dapat ditulis dalam huruf kecil atau huruf besar atau campuran keduanya. Shell membedakan huruf besar dan huruf kecil (case sensitive), contoh :

VPT=poltek i=5

Pemberian nilai variable tidak boleh dipisahkan dengan spasi, karena shell akan menganggap pemisahan tersebut sebagai parameter, contoh :

VPT   =poltek         ##error

VPT=   poltek         ##error

Untuk melihat nilai/isi dari sebuah variable, gunakan tanda $ di depan nama variable tersebut. Pada shell, instruksi echo dapat menampilkan isi variable tersebut, contoh :

VPT=poltek echo $VPT

 

Gaji=450000

echo $Gaji echo $VPT $Gaji

Bila menggunakan string yang terdiri dari lebih dari satu kata, maka string tersebut harus berada dalam tanda kutip atau apostrof, contoh :

VPT=poltek

VPT2=”politeknik negeri jakarta”

3       MEMBACA KEYBOARD

Nilai variable dapat diisi melalui keyboard (stdin) dengan instruksi read.

4       PARAMETER

Sebuah program shell dapat mempunyai parameter sebanyak 9 buah dan direpresentasikan melalui  variable  khusus  yaitu  variable  $!, $2, $3, $4, $5, $6, $7,  $8   dan $9. Nama program she ll (nama script) direpresentasikan melalui variable $0.

Jumlah parameter dinyatakan sebagai $#. Bila tidak memberikan parameter, maka nilai $# adalah 0.

Shell variable $* menyatakan seluruh string yang menjadi parameter / argumen sebuah script ($@ mempunyai arti yang sama).  $$ menyatakan nomor proses id (pid)  dari script yang dijalankan. Pid ini akan terus berubah (umumnya) menaik, setiap kali proses berjalan.

5       STATUS EXIT

Setiap program setelah selesai dieksekusi akan memberikan informasi melalui variable spesial $?. Indikasi yang diberikan adalah :

o   Bila program berakhir dengan sukses, $? = 0

o   Bila program berakhir  dengan error,      $? ¹ 0

Nilai dari status exit dapat dilihat melalui instruksi echo $?

6       KONSTRUKSI IF


if akan mengeksekusi instruksi-awal, dan exit status dari instruksi tersebut akan menjadi kondisi. Bila 0, maka instruksi selanjutnyua masuk ke dalam blok then. Bila  tidak  0,  maka alur program diteruskan setelah kunci kata fi.


7        KONSTRUKSI IF THENELSE


Bila status exit tidak sama dengan 0, maka kondisi menjadi FALSE dan instruksi setelah else akan dijalankan.

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 (TESTLEVEL)

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


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


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.






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 1 : Membuat shell script

         1.             Buatlah file prog01.sh dengan editor vi

$ vi prog01.sh

#!/bin/sh

# Program shell 

#

var1=x 

var2=8


        Analisa :  Membuat file dengan editor vi. Lalu inputkan code program sesuai modul pada file prog01. Untuk keluar dari editor tekan esc, lalu ketik :wq! dan enter.v

  2.             Untuk menjalankan shell, gunakan notasi TITIK di depan nama program

$ . prog01.sh

 

    Analisa :  Untuk menjalankan file tersebut, gunakan .(spasi)nama file.sh. pada saat menjalankan        perintah . prog01.sh terjadi l# tidak ditemukan akan tetapi pada saat          menggunakan perintah /bin/ls kita dapat melihat file l tersebut.

3.             Untuk menjalankan shell, dapat juga dengan membuat executable file dan dieksekusi relatif dari current directory

$ chmod +x prog01.sh

$ ./prog01.sh



    Analisa :

·         Gunakan perintah $ chmod +x untuk membuat file menjadi executable

·         Gunakan perintah $ ./ untuk menjalankan file yang executable

 

Percobaan 2 : Variabel

1.        Contoh menggunakan variable pada shell interaktif

$ VPT=poltek

$ echo $VPT

Analisa :

·         Perintah VPT  untuk mengisi file VPT

·         Perintah echo $VPT digunakan untuk melihat isi VPT

 

2.        Pemisahan 2 kata dengan spasi menandakan eksekusi 2 buah instruksi. Karakter $ harus ada pada awal nama variable untuk melihat isi variable tersebut, jika tidak, maka echo akan mengambil parameter tersebut sebagai string.

$ VPT2=poltek negeri Jakarta (Terdapat pesan error)

$ VPT2=”poltek negeri Jakarta”

$ echo VPT2

$ echo $VPT2

Analisa : Saat VPT2=Poltek Negeri Jakarta terdapat pesan error karena shell mendeteksi spasi yang menandakan terbaca 2 instruksi. Jika menggunakan string lebih dari satu kata, maka string harus berada dalam tanda kutip atau apostrof.  Karakter $ harus ada pada awal nama variable untuk melihat isi variable tersebut, jika tidak, maka echo akan mengambil parameter tersebut sebagai string.

 

3.        Menggabungkan dua variable atau lebih

$ V1=poltek

$ V2=’:’

$ V3=jakarta

$ V4=$V1$V2$V3

$ echo $V4

Analisa :

·         Membuat 3 variable dengan nama V1,V2, dan V3.

·         Untuk menggabungkan ketiga variable diatas, buat variable ke-4 yang isinya ialah gabungan dari variable V1,V2,V3 dengan perintah $V4=$V1,$V2,$V3.

·         Gunakan perintah $echo $V$ untuk membaca file V4.

 

4.      Menggabungkan isi variable dengan string yang lain. Jika digabungkan dengan nama variable yang belum didefinisikan (kosong) maka instruksi echo menghasilkan string kosong. Untuk menghindari kekeliruan, nama variable perlu diproteksi dengan { } dan kemudian isi variable tersebut digabung dengan string.

$ echo $V3

$ echo $V3ITS

$ echo ${V3}ITS

Analisa : Perintah echo $V3 untuk membaca isi file V3. Jika kita ingin menggabungkan isi variable dengan string lain dengan menggunakan perintah echo $V3ITSI menghasilkan string kosong karena variable belum didefinisikan. Untuk menghindari kekeliruan, nama variable perlu diproteksi dengan { } dan kemudian isi variable tersebut digabung dengan string..

 

5.      Variabel dapat berisi instruksi, yang kemudian bila dijadikan input untuk shell, instruksi tersebut akan dieksekusi

$ CMD=who

$ $CMD

$ CMD=”ls –l”

$ $CMD 

Analisa : CMD dapat diisi dengan perintah, tidak harus variable. Karena kita masukkan who, maka output nya ialah perintah who.

 

6.      Modifikasi file prog01.sh berikut

$ vi prog01.sh

#!/bin/sh

V1=poltek

V2=’:’

V3=jakarta

echo “Pemrograman shell”

echo $V1$V2$V3

V3=ITS

echo $V1$V2 di $V3


 

Analisa : Untuk menginputkan code program, gunakan cara yang sama pada percobaan 1. Arti dari program diatas ialah pertama akan mencetak “Pemrograman shell”. Lalu membuat variable V1, V2, dan V3. Kemudian membuat variable V3(ITS). Gabungkan variable V1 dengan V2 dan ditambah dengan V3.

 

7.   Cara sederhana mengeksekusi shell adalah dengan menggunakan notasi titik di depan nama shell script tersebut. Bila direktori actual tidak terdaftar dalam PATH, maka command tersebut tidak dapat ditemukan. Bila script belum executable, script tidak dapat dieksekusi.

$ . prog01.sh

$ prog01.sh (Terdapat pesan error)

$ ./prog01.sh (Terdapat pesan error)

$ chmod +x prog01.sh

$ ./prog01.sh


Analisa : Terdapat pesan error sebab perintah tersebut bukan untuk mengeksekusi file .sh. Perintah diatas untuk mengeksekusi shell secara sederhana dengan menggunakan notasi TITIK di depan nama shell script. Karena script sudah di executable saat di nomor 1, maka script bisa dieksekusi.

 

Percobaan 3 : Membaca keyboard

1.        Menggunakan instruksi read

$ read nama

amir

$ echo $nama

Analisa : Untuk memasukkan nilai kedalam variable juga bisa melalui keyboard dengan menggunakan instruksi read. Bisa juga membaca isi variable nama dengan perintah echo $(nama variable)

 

2.        Membaca nama dan alamat dari keyboard

$ vi prog02.sh

#!/bin/sh

# prog02.sh

# membaca nama dan alamat

echo “Nama Anda : “

read nama

echo “Alamat : “

read alamat

echo “Kota : “

read kota

echo

echo “Hasil adalah : $nama, $alamat di $kota”


Analisa :

·      Pertama kita mencetak “nama anda :”. Kemudian kita akan disuruh memasukkan nama kita yang akan disimpan dalam variable nama(perintah read nama).

·   Selanjutnya program akan mencetak “alamat:”. Lalu masukkan alamat kita yang akan disimpang didalam variable alamat(perintah read alamat). Maka program akan mencetak “kota:”.

·    Kemudian kita akan disuruh memasukkan kota kita yang akan disimpan didalam variable kota (perintah read kota). Hasil akhir program akan mencetak “hasil adalah: (nama yang kita inputkan),(alamat yang kita inputkan), di kota  kota yang kita inputkan)”

 

3.        Eksekusi program prog02.sh

$ . prog02.sh

Nama Anda :

Amir

Alamat :

Jl Margonda 67

Kota :

Depok

Hasil adalah : Amir, Jl Margonda di Depok

Analisa :  Outputnya sesuai dengan yang kita harapkan di percobaan 3 nomor 2.

4.  Instruksi echo secara otomatis memberikan baris baru, maka untuk menghindari hal tersebut disediakan opsi – n, yang menyatakan kepada echo untuk menghilangkan baris baru. Modifikasi program prog02.sh

$ vi prog02.sh

#!/bin/sh

# prog02.sh

# membaca nama dan alamat

echo –n “Nama Anda : “

read nama

echo –n “Alamat : “

read alamat

echo –n “Kota : “

read kota

echo

echo “Hasil adalah : $nama, $alamat di $kota”




Analisa :  Outputnya sesuai dengan yang kita harapkan di percobaan 3 nomor 2.

 

4.  Instruksi echo secara otomatis memberikan baris baru, maka untuk menghindari hal tersebut disediakan opsi – n, yang menyatakan kepada echo untuk menghilangkan baris baru. Modifikasi program prog02.sh

$ vi prog02.sh

#!/bin/sh

# prog02.sh

# membaca nama dan alamat

echo –n “Nama Anda : “

read nama

echo –n “Alamat : “

read alamat

echo –n “Kota : “

read kota

echo

echo “Hasil adalah : $nama, $alamat di $kota”



Analisa : Program ini sama dengan sebelumnya, hanya saja ditambahkan –n. Artinya menghilangkan baris baru setelah mencetak kata.

 

5.        Eksekusi program prog02.sh

$ . prog02.sh

Nama Anda : Amir

Alamat : Jl Margonda 67

Kota : Depok

 

Hasil adalah : Amir, Jl Margonda di Depok

Analisa : Dapat dilihat outputnya kita menginputkan nama, alamat, dan kota berada di samping.

 

6.        Variabel kosong adalah variable yang tidak mempunyai nilai. Variabel ini didapat atas assignment atau membaca dari keyboard atau variable yang belum didefinisikan

$ read nama

<CR>

$ echo $nama

$ A=

$ B=””

$ C=$A$B

$ echo $C

 

Analisa :

  • Read nama adalah untuk mengisi variable nama, kemudina kita menginputkan <CR>dan saat kita baca dengan echo $nama ternyata isinya adalah <CR>. Variable tersebut bukan termasuk variable kosong.
  • Kemudian kita membuat variable A tanpa isi, dan variable b tanpa isi juga. Membuat variable kosong bisa dengan 2 cara diatas. Pertama tanpa ditulisi sama sekali, yang kedua diapit tanda petik 2 tanpa ada isi.
  • Kita gabung variable A dan B dengan cara diatas. Kita masukkan keduanya kedalam variable C.
  • Setelah variable C dibaca ternyata tidak ada isinya karena memang variable C terdiri dari variable A dan variable B yang tidak ada isi nya

 

7.    Variabel dapat disubtitusikan dengan hasil eksekusi dari sebuah instruksi. Pada contoh dibawah , instruksi pwd dieksekusi lebih dahulu dengan sepasang Back Quate (tanda kutip terbalik). Hasil dari eksekusi tersebut akan masuk sebagai nilai variable DIR

$ pwd

$ DIR=`pwd`

$ echo $DIR

Analisa : Variable dapat disubtitusi dengan hasil suatu instruksi. Contohnya kita menuliskan $ DIR=`pwd`, artinya kita menginputkan perintah pwd dan hasilnya akan disimpan di dalam variable DIR.

 

8.        Buatlah shell script prog03.sh

$ vi prog03.sh

#!/bin/sh

# prog03.sh

#

NAMA=`whoami`

echo Nama Pengguna Aktif adalah $NAMA

tanggal=`date | cut –c1-10`

echo Hari ini tanggal $tanggal

Analisa :

·    Output dari perintah whoami akan disimpandidalam variable NAMA dan kemudian kita mencetak “Nama pengguna aktif adalah (output whoami)”

·     Output dari perintah date | cut -c1 -10 ialah perintah tersebut akan disimpan didalam variable tanggal. Kemudian kita mencetak “hari initanggal (output dari date | cut -c -10).

 

9.        Eksekusi prog03.sh

$ . prog03.sh

Analisa :  Output dari whoami adalah Salsabilla dan output dari date | cut –c1-10 adalah Sel Okt 27.

 

Percobaan 4 : Parameter

1.        Membuat shell script prog04.sh

$ vi prog04.sh

#!/bin/sh

# prog04.sh versi 1

# Parameter passing

#

echo “Nama program adalah $0”

echo “Parameter 1 adalah $1”

echo “Parameter 2 adalah $2”

echo “Parameter 3 adalah $3”

Analisa :

·         Membuaat file prog04.sh

·         Arti dari $0 ialah menampilkan parameter nol yaitu berupa nama program. Program yang kita gunakan adalah program bash, maka outputnya adalah bash.

·         Arti dari $1$2, dan $3 ialah menampilkan parameter kesatu, kedua, dan ketiga.

 

2.        Eksekusi prog04.sh tanpa parameter, dengan 2 parameter, dengan 4 parameter

$ . prog04.sh

$ . prog04.sh amir hasan

$ . prog04.sh amir hasan badu ali

Analisa :

·         Mengeksekusi program prog04.sh

·         Terlihat outputnya. $0 menunjukan nama program.

·         Saat kita menginputkan 2 parameter yaitu Amir dan Hasan  maka parameter tersebut akan ditampilkan sebagai $1 dan $2, sedangkan lainnya kosong.

·         Saat kita menginputkan 4 parameter yaitu AmirHasanBadu, dan Ali maka keempat variable nya akan terisi berurutan.

 

3.        Membuat shell script prog04.sh versi 2 dengan memberikan jumlah parameter

$ vi prog04.sh

#!/bin/sh

# prog04.sh versi 2

# Parameter passing

#

echo “Jumlah parameter yang diberikan adalah $#”

echo “Nama program adalah $0”

echo “Parameter 1 adalah $1”

echo “Parameter 2 adalah $2”

echo “Parameter 3 adalah $3”



Analisa :  Arti dari $# ialah menghitung parameter yang kita berikan.

 

4.        Eksekusi prog04.sh tanpa parameter dan dengan 4 parameter

$ . prog04.sh

$ . prog04.sh amir hasan badu ali

Analisa :

·         Mengeksekusi program prog04.sh

·         Output “jumlah parameter yang diberikan 0” sebab kita tidak menginputkan parameter sama sekali.

·         Output “jumlah parameter yang diberikan 4” sebab kita menginputkan 3 parameter yaitu amir, hasan, badu, dan ali.

 

5.        Membuat shell script prog04.sh versi 3 dengan menambahkan total parameter dan nomor proses id (PID)

$ vi prog04.sh

#!/bin/sh

# prog04.sh versi 3

# Parameter passing

#

echo “Jumlah parameter yang diberikan adalah $#”

echo “Nama program adalah $0”

echo “Parameter 1 adalah $1”

echo “Parameter 2 adalah $2”

echo “Parameter 3 adalah $3”

echo “Total parameter adalah $*”

echo “PID proses shell ini adalah $$”


Analisa :

·         Arti dari $* adalah menampilkan seluruh parameter yang diberikan.

·         Arti dari $$ adalah menampilkan nomor PID proses program tersebut.

 

6.        Eksekusi prog04.sh dengan 4 parameter

$ . prog04.sh amir hasan badu ali

Analisa : Mengeksekusi file prog04.sh dengan memberikan parameter amir, hasan, badu, dan ali. Sehingga outputnya :

·         Jumlah parameter ialah 4, parameter 1 adalah amir, parameter 2 adalah hasan, parameter 3 adalah badu

·         Total parameter ialah amir hasan badu ali dan nomor PID nya ialah 2019.

 

Percobaan 5 : Status Exit

1.        String tidak diketemukan, maka status exit adalah 1

$ grep xyz /etc/passwd

$ echo $?

Analisa :

·         Arti perintah $ grep xyz /etc/passwd ialah mencari file xyz di dalam direktori etc di dalam passswd

·         Arti dari perintah $ echo $? adalah jika file yang kita cari ditemukan maka status exitnya ialah 1.

 

2.        String diketemukan, maka status exit adalah 0

$ grep <user> /etc/passwd

$ echo $?

Analisa : Saat kita mencari “salsabilla” dietc/passwd dan ketemu. Maka saat kita cek status exit menunjukkan 0.

 

Percobaan 6 : Konstruksi If

1.        Instruksi dengan exit status 0
$ who
$ who | grep <user>
$ echo $?

Analisa : Arti perintah program diatas ialah perintah who | grep <user> akan mencari kata “salsabilla” didalam output dari perintah who, dan ternyata kata “salsabilla” ditemukan dari who, sehingga saat kita cek status exitnya adalah 0.

 

2.      If membandingkan exit status dengan 0, bila sama, maka

blok program masuk ke dalam blok then-fi
$ if [ $? = 0 ]
>then
>echo “Pemakai tersebut sedang aktif”
>fi

Analisa : Arti dari perintah program diatas ialah jika status exit 0, maka akan mencetak pemakai tersebut sedang aktif.

 

3.        Nomor (1) dan (2) diatas dapat disederhanakan dengan
$ if who|grep <user> >/dev/null
>then
>echo okay
>fi

Analisa : Arti perintah program diatas ialah, mencari kata “test” yaitu user yang sedang aktif pada direktori /dev/null. Jika ketemu, maka akan mencetak okey.

 

Percobaan 7 : Konstruksi if then else

1.        Membuat shell script prog05.sh
$ vi prog05.sh
#!/bin/sh
# prog05.sh
# Program akan memberikankonfirmasi apakah nama
# user sedang aktif atau tidak
#
echo –n “Berikan nama pemakai : ”
read nama
if who | grep $nama > /dev/null
then
echo “$nama sedang aktif”
else
echo “$nama tidak aktif”
fi


Analisa :

·    Arti Perintah echo -n“berikan nama pemakai” ialah kita memasukkan nama pemakai. Nama yang kita inputkan akan disimpan di dalam variable nama.

·     Kemudian jika nama yang kita inputkan sama dengan nama user yang sedang aktif maka program akan mencetak“(user) sedang aktif ”

·     Sedangkan jika nama yang kita inputkan bukan user yang sedang aktif maka program akan mencetak“(nama yang diinputkan) tidak aktif”

2.        Jalankan prog05.sh, masukkan nama pemakai yang aktif yang tampil pada instruksi who dan coba juga untuk nama pemakai yang tidak aktif
$ who
$ . prog05.sh [nama=<user>]
$ . prog05.sh [nama=studentOS]

Analisa : Program akan menjalankan sesuai perintah. Karena user yang sedang aktif ialah salsabilla, maka outputnya ialah salsabilla sedang aktif.



Kesimpulan:

Berdasarkan hasil praktikum yang saya lakukan diatas terdapat Shell Script, Variable, Membaca Keyboard, Parameter, Status Exit, Konsntruksi If Then Else, dapat disimpulkan sebagai berikut:


1.Shell script dibuat dengan editor teks yang pada umumnya diberikan ekstensi “.sh”


2.Variable shell adalah variable yang dapat mempunyai nilai berupa nilai String


3.Membaca Keyboard dengan nilai variable dapat diisi melalui keyboard (stdin) dengan instruksi                read


4.Parameter sebuah program shell dapat mempunyai sebanyak 9 buah.


5.Status exit untuk mengeksekusi setelah program telah selesai


6.Instruksi test digunakan untuk memeriksa kondisi dari sebuah ekspres


Daftar Pustaka 


Dymand.2012.Linux Pratikum. Linux Praktikum6-A Pemrograman Shell | dymand (dymand-informatika.blogspot.com) (Diakses tanggal 2 November 2021)

Ardhila.2020.Pemograman Shell 6a dan 6B. Adhila : Pemograman Shell 6A dan 6B (adhiladvl.blogspot.com) (Diakses tanggal 2 November 2021)

Rinskyy.2020.Operasi File dan Struktur Direktory. Praktikum 6-A dan 6-B Pemrograman Shell (rinskyy.blogspot.com) (Diakses tanggal 2 November 2021)

 


Komentar

Postingan populer dari blog ini

Praktikum 4B Proses dan Manajemen Proses

Praktikum 12 Manajemen Aplikasi