Linux : Pemrograman Shell

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

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

b)      Adalah komentar, sebagai dokumentasi, baris ini akan diabaikan oleh program shell

c)      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=”poltek elektronika ITS”

 

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 :

-          Bila program berakhir dengan sukses, $? = 0

-          Bila program berakhir dengan error,    $? 0

Nilai dari status exit dapat dilihat melalui instruksi echo $?

 

6.   KONSTRUKSI IF

if instruksi-awal then

                  instruksi1                    instruksi2

……………… fi

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 THEN ELSE

 

if instruksi1

            then

                    instruksi1.1                     instruksi1.2

                      ………………             else

                   instruksi2.1                      instruksi2.2

                 ………………

            fi

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 factor 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 string1 != string2

-n string

-z string

Identical

Not identical

String is not null

String is null

 

      Test untuk files dan directory

Test dapat dilakukan untuk memeriksa apakah file ada (Exist), dapat dibaca, dapat ditulis, kosong dan lainnya.

Operator

0 atau TRUE, jika

-f namafile

-d namafile

-r namafile

File ada, file biasa

File ada, file adalah direktori

File dapat dibaca

-w  namafile

-x  namafile

-s namafile

-w namafile

File dapat ditulis

File adalah executable

File ada dan tidak kosong

File dapat ditulis

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 dalah 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 –eq i2 i1 –ge i2 i1 –gt i2 i1 –le i2 i1 –lt i2 i1 –ne 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 atau 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 logis dengan lebih jelas dan mudah untuk ditulis.

case variable in match1)

                  instruksi1.1                   instruksi1.2

………………

;; match2)

                  instruksi2.1                   instruksi2.2

………………

;;

*)

                  instruksi3.1                   instruksi3.2

……………… ;;

            esac

Case diakhiri dengan 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 sama di 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

Gambar di atas adalah tampilan mengedit dengan editor vi. Memberi komentar menggunakan tanda pagar.

 

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

$ . prog01.sh

Pada gambar di atas adalah menjalankan file prog01.sh. Karena pada file tersebut tidak menghasilkan output, maka ketika program dijalankanpun tidak akan menghasilkan apa-apa.

             

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

$ chmod +x prog01.sh

$ ./prog01.sh

Terdapat beberapa perintah untuk menjalankan file seperti pada nomor sebelumnya, yaitu menggunakan perintah seperti gambar di atas.

 

Percobaan 2 : Variabel

1.       Contoh menggunakan variable pada shell interaktif

$ VPT=poltek

$ echo $VPT

Membuat variabel di shell interaktif dengan menggunakan tanda sama dengan ‘=’ tanpa spasi. Memanggil variabel tersebut menggunakan symbol ‘$’. Pada percobaan ini variabel yang dipanggil bernama VPT yang berisi ‘poltek’.

       

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 elektronika (Terdapat pesan error)

 $ VPT2=”poltek elektronika”

 $ echo VPT2

 $ echo $VPT2

Jika variabel yang dibuat berisi lebih dari satu kata, atau mengandung spasi, maka isi variabel tersebut harus menggunakan tanda petik dua. Untuk memanggil sebuah variabel menggunakan tanda $ diikuti dengan nama variabelnya. Pada contoh di atas, yaitu memanggil variabel VPT2 menggunakan $VPT2.

             

3.       Menggabungkan dua variable atau lebih

            $ V1=poltek

            $ V2=’:’

            $ V3=elektronika

            $ V4=$V1$V2$V3

$ echo $V4

Jika ingin menggabungkan variabel menggunakan tanda $ di masing-masing nama variabelnya, seperti pada variabel V4 di atas.

 

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

Pada gambar di atas yaitu menampilkan variabel digabung dengan string baru. Nama variabelnya diproteksi dengan kurung kurawal { }. Jika tidak diproteksi maka tidak akan menghasilkan output apa-apa seperti pada gambar di atas, yaitu pada perintah $V3ITS.

             

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

   $ CMD=who

   $ $CMD

   $ CMD=”ls –l”

   $ $CMD

Variabel juga bisa berisi instruksi. Sama seperti pada percobaan sebelumnya, jika isi variabel tersebut berisi lebih dari satu kata, maka harus menggunakan tanda petik dua.

             

6.       Modifikasi file prog01.sh berikut

            $ vi prog01.sh

            #!/bin/sh

            V1=poltek

            V2=’:’

            V3=elektronika      

echo “Pemrograman shell”

echo $V1$V2$V3

V3=ITS          

echo $V1$V2 di $V3

 

Gambar di atas adalah tampilan di editor vi. Terdapat warna-warna yang menggambarkan arti tertentu. Warna biru menandakan komentar, warna biru yang dicetak tebal adalah variabel, warna ungu adalah string, warna oren adalah instruksi, warna putih adalah isi variabel dan warna biru tua adalah memanggil variabel.

             

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

Mengeksekusi shell menggunakan tanda titik, titik garis miring dan chmod. Jika hanya nama filenya saja akan menghasilkan pesan error.

 

 

Percobaan 3 : Membaca keyboard

1.        Menggunakan instruksi read

$ read nama

amir

$ echo $nama

Percobaan ini adalah untuk membaca keyboard dan memasukkannya ke variabel ‘nama’. Untuk memanggil variabel ini menggunakan tanda ‘$’.

 

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”

Setelah instruksi membaca input dari keyboard, input tersebut dimasukkan ke dalam variabel. Pada gambar di atas, variabel tersebut adalah ‘nama’, ‘alamat’, dan kota.  


3.        Eksekusi program prog02.sh

$ . prog02.sh

Nama Anda :

Amir

Alamat :

Jl semangka 67

Kota :

Surabaya

 

Hasil adalah : Amir, Jl semangka di Surabaya

Program yang ditampilkan sesuai dengan instruksi yang telah dibuat sebelumnya. Yaitu terdapat tiga inputan dari keyboard untuk nama, alamat dan kota.

 

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”

Isi program shell ini sama dengan percobaan sebelumnya. Yang membedakan hanya penambahan ‘-n’ setelah instruksi echo. Ini digunakan untuk mencegah pembuatan baris baru.

 

5.        Eksekusi program prog02.sh

$ . prog02.sh

Nama Anda : Amir

Alamat : Jl semangka 67

Kota : Surabaya

 

Hasil adalah : Amir, Jl semangka di Surabaya

Program yang ditampilkan sesuai dengan instruksi yang telah dibuat sebelumnya. Setelah instruksi ‘echo’, input dari keyboard tidak menggunakan baris baru, namun berada pada baris yang sama.

 

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

Pada percobaan di atas, variabel ‘nama’ tidak berisi kosong, sedangkan variabel A dan B adalah variabel kosong.

 

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

Mengutip sebuah instruksi menggunakan tanda kutip terbalik (back quote’. Pada contoh ini yaitu mengutip instruksi ‘pwd’ kemudian dimasukkan ke variabel bernama ‘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

Gambar di atas adalah tampilan editor vi dengan program sesuai pada yang diperintahkan.

 

9.        Eksekusi prog03.sh

$ . prog03.sh

Ketika dieksekusi, outputnya sesuai dengan program di dalamnya. Program ini mengutip instruksi $whoami dan $date menggunakan tanda kutip terbalik.

 

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”

Gambar di atas adalah isi program di editor vi. Terdapat 4 parameter yang digunakan. Parameter 0 untuk nama program.

 

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

$ . prog04.sh

$ . prog04.sh amir hasan

$ . prog04.sh amir hasan badu ali

Parameter dimasukkan langsung setelah nama program ketika mengeksekusinya. Parameter 0 adalah nama program itu sendiri, dan parameter selanjutnya berurutan sesuai nomornya. Jika tidak ada parameter yang dimasukkan, maka program tetap akan dicetak namun parameternya kosong.

 

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”

Pada program di atas, menghitung jumlah parameter menggunakan tanda pagar ‘#’.

 

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

$ . prog04.sh

$ . prog04.sh amir hasan badu ali

Dapat dilihat pada gambar, ketika tidak ada parameter yang dimasukkan maka jumlah parameternya adalah 0. Ketika jumlah parameter yang dimasukkan melebihi kebutuhan program, maka sisa parameter tersebut tidak akan digunakan. Contohnya parameter ‘ali’ tidak digunakan di program.

 

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 $$”

Menghitung jumlah parameter menggunakan tanda pagar $#, menampilkan parameter menggunakan instruksi nomor parameter tersebut, menampilkan semua parameter menggunakan $* dan menampilkan nomor PID menggunakan instruksi $$.

 

6.        Eksekusi prog04.sh dengan 4 parameter

$ . prog04.sh amir hasan badu ali

Outputnya sesuai dengan program yang telah diketikkan sebelumnya. Nomor PID proses ini adalah 2088.

 

 

Percobaan 5 : Status Exit

1.        String tidak diketemukan, maka status exit adalah 1

$ grep xyz /etc/passwd

$ echo $?

Percobaan di atas adalah untuk mencari string ‘xyz’ pada file /etc/passwd. Kemudian string tersebut ditampilkan dengan instruksi $echo. Karena tidak ditemukan, sebagai gantinya status exit ‘1’ ditampilkan.

 

2.        String diketemukan, maka status exit adalah 0

$ grep <user> /etc/passwd

$ echo $?

 Jika pada percobaan sebelumnya status exit 1 ditampilkan ketika string yang dicari tidak ditemukan, status exit 0 akan ditampilkan dika string yang dicari ditemukan. Ketika mencari string ‘diah’ d file /etc/passwd dan ditemukan, status exit 0 ditampilkan.

 

 

Percobaan 6 : Konstruksi if

1.   Instruksi dengan exit status 0 $ who

$ who | grep <user>

$ echo $?

Percobaan ini adalah menggunakan instruksi $who untuk melihat informasi user. Kemudian dari informasi tersebut dicari kata kunci ‘diah’. Karena hasil ini ditemukan, maka status exit yang ditampilkan 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

Jika exit status sama dengan 0, maka akan masuk ke blok then-fi dan mencetak kalimatt menggunakan instruksi $ echo. Namun pada percobaan ini exit status di perintah sebelumnya tidak 0, maka kalimat tersebut tidak ditampilkan.

 

3.        Nomor (1) dan (2) diatas dapat disederhanakan dengan

$ if who|grep <user> >/dev/null

> then

>         echo okay

> fi

 Program ini adalah menggabungkan beberapa instruksi sebelumnya. Jika status exit sama dengan 0, maka akan mencetak tulisan menggunakan $ echo. Pada gambar di atas, exit statusnya adalah 0, maka tulisan ‘okay’ ditampilkan.

 

 

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

Percobaan ini adalah menggunakan konstruksi if dan else. Jika kondisi pertama tidak memenuhi, maka akan dieksekusi perintah else.

 

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]

Karena kondisi pertama memenuhi, maka perintah pada then yang dijalankan, yaitu terdapat user di informasi $ who. User ‘studentOS’ tidak ada di informasi $who, maka perintah di bagian else yang dijalankan.

 

Percobaan 8 : Instruksi Test

1.      Menggunakan instruksi test, perhatikan spasi antara

$ NAMA=amir

$ test $NAMA = amir

$ echo $?

$ test $NAMA = boris

$ echo $?

Pada pengecekan status exit yang pertama menghasilkan nilai exit 0, yang artinya program berakhir sukses. Sedangkan yang kedua menghasilkan status exit 1, yang artinya program berakhir dengan error. Hal ini karena variabel ‘NAMA’ berisi string ‘amir’. Dalam pengisian variabel menggunakan string tidak menggunakan spasi untuk memisahkan tanda sama dengan.

 

2.      Aplikasi test dengan konstruksi if

$ vi prog06.sh

#!/bin/sh

# prog06.sh

 echo –n “NAMA = “

 read NAMA

 if test “$NAMA” = amir

 then

         echo “Selamat Datang $NAMA”

 else

         echo “Anda bukan amir, sorry!”

 fi

Program ini tidak berbeda dengan percobaan sebelumnya. Namun percobaan ini menulis programnya di editor vi. Untuk memanggil variabel menggunakan tanda ‘$’.

 

3.         Jalankan program prog06.sh dengan memasukkan NAMA = amir dan NAMA = <CR> perhatikan hasil tampilannya

 $ . prog06.sh [NAMA = amir]

 $ . prog06.sh [NAMA = <CR>] (Terdapat pesan error)

Karena program ini kondisi pertamanya hahnya untuk string ‘amir’, maka selain ‘amir’ program yang dieksekusi adalah program else. Contohnya pada ‘rima’ dan ‘<CR>’.

  

4.         Modifikasi prog06.sh dengan menggunakan notasi untuk test

 $ vi prog06.sh

 #!/bin/sh

 # prog06.sh  

 echo –n “NAMA = “  

 read NAMA  

 if [ “$NAMA” = amir ]

 then

         echo “Selamat Datang $NAMA”

 else

         echo “Anda bukan amir, sorry!”

 fi

Instruksi test diganti dengan notasi kurung kotak.

 

5.  Jalankan program prog06.sh dengan memasukkan NAMA = amir

$ . prog06.sh [NAMA = amir]

Outputnya akan sama dengan program sebelumnya karena hanya mengganti notasi untuk instruksi test saja.

 

 

Percobaan 9 : Notasi &&  dan ||

1.         Bila file prog01.sh ada (TRUE), maka jalankan program berikutnya.  File   prog01.sh ada, karena itu exit status adalah TRUE, hasil operasi AND masih tergantung pada hasil eksekusi instruksi ke 2, dan dengan demikian instruksi echo akan dijalankan.

 $ [ -f prog01.sh ] && echo “Prog01.sh ada”

Percobaan ini adalah melakukan ‘test’ menggunakan notasi test yaitu kurung kotak. Jika program yang pertama sukses, atau menghasilkan TRUE, maka instuksi berikutnya akan dieksekusi. Pada gambar di atas, instruksi yang pertama menghasilkan TRUE, atau terdapat file prog01.sh.

 

2.         File prog99.sh tidak ada, karena itu exit status adalah FALSE dan instruksi echo tidak dijalankan

 $ [ -f prog99.sh ] && echo “Prog99.sh ada”

Instruksi $echo tidak dieksekusi karena instruksi sebelumnya tidak menghasilkan TRUE. Atau pada percobaan ini, tidak ada file bernama prog99.sh.

 

3.         Bila prog01.sh ada maka jalankan shell script tersebut

$ [ -f prog01.sh ] && . prog01.sh

File bernama prog01.sh ditemukan di direktori yang sedang aktif, instruksi selanjutnya yaitu menjalankan file prog01.sh.

 

4.         Bila prog01.sh ada maka jalankan program berikutnya.  File prog01.sh memang ada, karena itu exit status adalah TRUE, dan karena sudah TRUE maka instruksi echo tidak lagi dijalankan

$ [ -f prog01.sh ] || echo “Dieksekusi tidak ?”

Penggunaan tanda || berkebalikan dengan && pada percobaan sebelumnya. Jika instruksi yang pertama TRUE, maka instrukssi yang kedua tidak dijalankan. Pada gambar di atas instruksi pertama adalah TRUE sehingga perintah $ echo tidak dijalankan.

 

5.         File prog99.sh tidak ada, karena itu exit status adalah FALSE, hasil tergantung atas exit status instruksi ke dua, karena itu instruksi echo dijalankan

$ [ -f prog99.sh ] || echo “Dieksekusi tidak ?”

Perintah $ echo dijalankan, artinya instruksi pertama menghasilkan FALSE, atau tidak ada file bernama prog99.sh.

 

6.         File prog99.sh tidak ada, maka tampilkan pesan error

$ [ -f prog99.sh ] || echo “Sorry, prog99.sh tidak ada” 

Percobaan ini sama dengan percobaan nomor 5 sebelumnya, namun kalimatnya yang berbeda.

 

 

Percobaan 10 : Operator bilangan bulat untuk test

1.        Menggunakan operator dengan notasi test

$ i=5

$ test “$i” –eq 5   

$ echo $?

Percobaan ini untuk melihat exit status dari instruksi test sebuah variabel. –eq (equal) adalah untuk bilangan yang sama. Hasil exit statusnya 0, karena variabel i sama dengan 5 (equal). Program ini berjalan sukses.

 

2.        Menggunakan operator dengan notasi [ ] (penganti notasi test)

$ [ “$i” –eq 5 ]

$ echo $?

Percobaan ini sama dengan nomor sebelumnya, hanya mengganti instruksi $ test dengan notasi kurung kotak.

 

 

Percobaan 11 : Operator Logical dan konstruksi elif

1.      Buatlah file prog07.sh 

$ vi prog07.sh

#!/bin/sh

# prog07.sh

echo –n “INCOME = “ 

read INCOME 

if [ $INCOME –ge 0 –a $INCOME –le 10000 ] 

then

         BIAYA=10

 elif [ $INCOME –gt 10000 –a $INCOME –le 25000 ] 

 then

        BIAYA=25

 else

         BIAYA=35

 fi 

 echo “Biaya = $BIAYA”

Gambar di atas adalah tampilan program di editor vi. Kondisi yang pertama akan dieksekusi jika nilainya lebih besar (-ge) dari 0 dan kurang dari sama dengan (-le) 10000. Kondisi kedua berjalan jika nilainya lebih besar dari (-gt) 10000 dan kurang dari sama dengan (-le) 25000.

 

2.  Jalankan file prog07.sh dan masukkan untuk INCOME=5000, 20000, 28000

 $ . prog07.sh [INCOME=5000]

 $ . prog07.sh [INCOME=20000]

 $ . prog07.sh [INCOME=28000]

 INCOME yang pertama (5000) berada pada range kondisi yang pertama, INCOME 20000 berada pada kondisi kedua, dan INCOME 28000 berada pada range kondisi ketiga.

 

Percobaan 12 : Hitungan aritmetika

 

1.        Menggunakan utilitas expr 

  $ expr 5 + 1

$ A=5

$ expr $A + 2

 $ expr $A – 4

 $ expr $A * 2       (Ada Pesan Error)

 $ expr $A \* 2

 $ expr $A / 6 +10

$ expr 17 % 5

Expr adalah perintah untuk menghitung operasi matematika sederhana. Pertambahan (+), pengurangan (-), perkalian (\*), pembagian (/) dan modulus (%). Tanda operasi dan angka harus dipisah untuk menghindari error.

 

 

2.        Substitusi isi variable dengan hasil utilitas expr 

 $ A=5

 $ B=`expr $A + 1`

 $ echo $B

Jika sebuah variabel ingin berisi suatu perintah, menggunakan notasi kutip terbalik atau back quote (`). Variabel B berisi perintah penambahan variabel A dan 1.

 

Percobaan 13 : Instruksi exit

1.        Buat shell script prog08.sh 

$ vi prog08.sh

#!/bin/sh       

if [ -f prog01.sh ]

then

         exit 3

 else

         exit –1

 fi

Gambar di atas adalah tampilan program di dalam editor vi. Membuat komentar menggunakan tanda pagar #. Jika terdapat file bernama prog01.sh maka program tersebut akan dieksekusi.

 

2.        Jalankan script prog08.sh dan periksa status exit

$ . prog08.sh

 $ echo $?

Status exitnya bernilai 0, artinya program sukses berjalan.

 

 

Percobaan 14 : Konstruksi case - esac

 

1.      Buatlah  file prog09.sh dengan editor vi

$ vi prog09.sh

#!/bin/sh

# Prog: prog09.sh

echo “1. Siapa yang aktif”  echo “2. Tanggal hari ini”  echo “3. Kalender bulan ini”  echo –n “   Pilihan : “  read PILIH  case $PILIH in

1)       echo “Yang aktif saat ini”

         who

         ;;

2)       echo “Tanggal hari ini”

         date

         ;;

3)       echo “Kalender bulan ini”

         cal

        ;;

*)      echo “Salah pilih !!”

        ;;

Esac

Fungsi ‘case’ ditutup dengan fungsi ‘esac’. Setiap pilihan di dalam fungsi ‘case’ di awal dengan kurung buka dan diakhiri dengan titik koma dua kali. Pilihan tanda bintang *) akan berjalan sebagai opsi terakhir.

 

2.      Jalankan  program  prog09.sh, cobalah beberapa kali dengan inputan yang  berbeda

$ . prog09.sh

Jika input yang dipilih adalah nomor 1, maka case 1 akan dijalankan, begitu pula dengan nomor 2 dan 3. Namun jika selain nomor-nomor tersebut, opsi bintang *) yang akan dieksekusi. Opsi ini seperti ‘else’ pada perintah if.

 

3.      Buatlah  file prog10.sh yang merupakan bentuk lain dari case

$ vi prog10.sh

#!/bin/sh

# Prog: prog10.sh

 

echo –n “Jawab (Y/T) : “ 

read JWB

case $JWB in 

y | Y | ya |Ya |YA ) JWB=y ;; 

t | T | tidak | Tidak | TIDAK ) JWB=t ;; 

esac

Pada program ini terdapat dua case bernilai y atau t. Case pertama yaitu bernilai y jika input yang dimasukkan adalah y atau Y atau ya atau Ya atau YA. Case kedua akan bernilai t jika inputnya adalah t atau T atau tidak atau Tidak atau TIDAK.

 

4.      Jalankan  program  prog10.sh, cobalah beberapa kali dengan inputan yang  berbeda

$ . prog10.sh

Inputan yang dicoba adalah y, TIDAK, YA dan t.

 

5.      Modifikasi file prog10.sh yang merupakan bentuk lain dari case

$ vi prog10.sh

#!/bin/sh

# Prog: prog10.sh

 

echo –n “Jawab (Y/T) : \c“ 

read JWB

 

case $JWB in

[yY] | [yY][aA] ) JWB=y ;;

[tT] | [tT]idak ) JWB=t ;;

              *) JWB=? ;;

 esac

Program di atas adalah penyederhanaan dari program sebelumnya. Notasi | menandakan atau (pilihan).

 

6.    Jalankan  program  prog10.sh, cobalah beberapa kali dengan inputan yang berbeda

$ . prog10.sh

Input yang dicobakan adalah Ya, y, Tidak, dan t.

 

 

Percobaan 15 : Konstruksi for-do-done

1.      Buatlah  file prog11.sh 

$ vi prog11.sh

 #!/bin/sh

 # Prog: prog11.sh

 

 for NAMA in bambang harry kadir amir 

 do

   echo “Nama adalah : $NAMA”  done


 

2.      Jalankan program  prog11.sh

$ . prog11.sh

Setiap parameter dicetak satu-persatu. Parameter ini adalah bambang, harry, kadir dan amir.

 

3.      Buatlah  file prog12.sh yang berisi konstruksi for dan wildcard, program ini akan menampilkan nama file yang berada di current direktori

 $ vi prog12.sh

 #!/bin/sh

 # Prog: prog12.sh

 for F in *

 do

         echo $F

 done  

 

4.      Jalankan program  prog12.sh

$ . prog12.sh

Program ini mencetak semua nama file yang berada di direktori yang sedang aktif.

 

5.      Modifikasi file prog12.sh, program ini akan menampilkan long list dari file  yang mempunyai ekstensi lst

 $ vi prog12.sh

 #!/bin/sh

 # Prog: prog12.sh

 

 for F in *.lst 

 do

         ls –l $F

 done


 

6.      Jalankan program  prog12.sh

$ . prog12.sh

Ketika program dijalankan, terdapat pesan error karena tidak ada file yang berekstensi .lst.

 

 

Percobaan 16 : Konstruksi while-do-done

1.      Buatlah  file prog13.sh 

$ vi prog13.sh

#!/bin/sh

# Prog: prog13.sh

PILIH=1 

while [ $PILIH –ne 4 ] 

do

 echo “1. Siapa yang aktif”

 echo “2. Tanggal hari ini”

 echo “3. Kalender bulan ini”

 echo “4. Keluar”

 echo “   Pilihan : \c” 

 read PILIH 

 if [ $PILIH –eq 4 ]

   then

        break

    fi

    clear

 done

 echo “Program berlanjut di sini setelah break”

Selama opsi yang diketik tidak sama dengan 4, maka program akan terus berjalan. Dan setiap program selesai, akan dijalankan perintah $ clear.

 

2.      Jalankan program prog13.sh

$ . prog13.sh

Gambar di atas adalah ketika opsi yang diketik adalah 4. Yaitu program akan berhenti (break). 

 

Percobaan 17 : Instruksi dummy

1.      Modifikasi file prog13.sh 

$ vi prog13.sh

#!/bin/sh

# Prog: prog13.sh

 

PILIH=1 

while :

 do

         echo “1. Siapa yang aktif”

      echo “2. Tanggal hari ini”

  echo “3. Kalender bulan ini”        echo “4. Keluar”

  echo “   Pilihan : \c”

  read PILIH

  if [ $PILIH –eq 4 ]

         then                                break                fi

      clear

 done 

 echo “Program berlanjut di sini setelah break”

 


Gambar di atas adalah tampilan kode program di editor vi.

 

2.      Jalankan program  prog13.sh

$ . prog13.sh

Gambar di atas adalah hasil program. Program akan terus mengulang selama angka yang diketikkan bukan 4.

 

3.      Buatlah file prog14.sh yang berisi instruksi dummy untuk konstruksi if

$ vi prog14.sh 

#!/bin/sh 

# Prog: prog14.sh

 

 echo –n “Masukkan nilai : “

 read A

 if [ $A –gt 100 ] 

 then 

  :

 

else

 

        echo “OK !”

 fi

Instruksi dummy adalah instruksi yang tidak melakukan apa -apa, namun instruksi ini memberikan status exit 0. Input dari keyboard dimasukkan ke variabel A.

 

 

4.    Jalankan program prog14.sh beberapa kali dengan input yang berbeda

$ . prog14.sh

Dapat dilihat pada gambar, jika nilainya lebih besar dari 100, maka kondisi pertama akan dijalankan, sedangkan ‘else’ akan mencetak tulisan ‘OK’ jika nilainya kurang dari atau sama dengan 100.

 

Percobaan 18 : Fungsi

1.      Buatlah file fungsi.sh 

$ vi fungsi.sh

#!/bin/sh

# Prog: fungsi.sh

 

F1( ) {

   echo “Fungsi F1”

   return 1

 }

echo “Menggunakan Fungsi”

F1

F1

echo $?

Fungsi yang dibuat bernama F1. Cara memanggil fungsi adalah dengan mengetikkan nama fungsi tersebut. Pada kode di atas, fungsi F1 dipanggil sebanyak dua kali kemudian program menampilkan status exit tersebut.

 

2.      Jalankan program  fungsi.sh

$ . fungsi.sh

Perintah terakhir adalah menampilkan status exit, yaitu 1. Artinya program berjalan sukses.

           

3.      Menggunakan variable pada fungsi dengan memodifikasi file fungsi.sh 

$ vi fungsi.sh

#!/bin/sh

# Prog: fungsi.sh

 

F1( ) 

{

  Honor=10000

  echo “Fungsi F1”

  return 1

}

           

echo “Menggunakan Fungsi”

F1

F1

echo “Nilai balik adalah $?”

echo “Honor = $Honor”

Gambar di atas adalah tampilan program di editor vi.

 

4.    Jalankan program  fungsi.sh

$ . fungsi.sh

Output yang ditampilkan sesuai dengan program yang dituliskan sebelumnya.

 

5.    Menggunakan variable pada fungsi dengan memodifikasi file fungsi.sh 

$ vi fungsi.sh

#!/bin/sh

# Prog: fungsi.sh

           

F1( ) 

{

  local Honor=10000

  echo “Fungsi F1”

  return 1

}

           

echo “Menggunakan Fungsi”

F1

F1

echo “Nilai balik adalah $?”

echo “Honor = $Honor”

Variabel Honor adalah variabel local. Fungsi F1 memiliki nilai balik (return) 1.

 

6.    Jalankan programfungsi.sh

$ . fungsi.sh

Nilai baliknya adalah 1 sesuai dengan instruksi yang berada di fungsi F1.

 

 

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 tidak 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”

……

……

Berikut ini adalah kode program secara utuh.

Pada eksekusi yang pertama file prog01.sh berhasil disalin ke file hasil2.sh. Pada eksekusi yang kedua terdapat prtanyaan interaktif. Hal ini karena file tujuan sudah ada (hasil2.sh). Sedangkan pada eksekusi yang ketika file gagal disalin karena file tujuan merupakan direktori.

 

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

[ … ] && …

Berikut ini adalah kode program secara utuh.


Karena nama direktori ‘direk’ ada, maka instruksi selanjutnya dieksekusi. Yaitu menampilkan isi dari direktori ‘direk’.

 

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

Berikut ini adalah kode program secara utuh.

Perintah $ sh adalah untuk melakukan tracing bash suatu file. Yaitu file akan ditampilkan ke layar. Pada contoh di atas, gaji yang dihitung adalah 20000. PPH yang dihasilkan sebesar 4000 (dalam ribuan rupiah).

 

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 $”Usage:$0 {start|stop|restart|reload|status}”

      ;;

esac return

Berikut ini adalah kode program secara utuh.

Jika parameter yang diketikkan adalah start, stop, reload, status atau restart, maka akan dimunculkan kalimat.

 

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.

Berikut ini adalah kode program secara utuh.

 



Ketika inputnya adalah C, output yang dihasilkan sama dengan output jika inputnya adalah N. Hal ini dikarenakan jika inputnya C, nilai baliknya adalah 2. Semakin besar nilai return, semakin besar pula kemungkinan terjadi error.


Kesimpulan

1.      Pemberian nama variabel bersifat case sensitive, harus dimulai dengan abjad, dan tidak bisa mengandung spasi.

2.      Pemberian nilai variabel tidak dipisahkan dengan spasi. String harus berada di dalam tanda kutip jika berjumlah lebih dari satu kata. Jika nilai variabel berisi perintah atau instruksi, isi variabel tersebut harus berada di dalam back quote.

3.      Parameter program shell memiliki variabel $1, $2, $3, dan seterusnya. Jumlah parameter dinyatakan dengan $#, menampilkan semua parameter menggunakan $*, dan nomor pid menggunakan $$.

4.      Menampilkan status exit menggunakan $?. Program berakhir sukses jika statusnya 0.

5.      Logical operator terdiri dari AND (-a), OR (-o), dan NOT (!).

6.      Fungsi untuk melakukan aritmatika sederhana menggunakan fungsi expr.

 

 

Komentar

Postingan populer dari blog ini

Linux : Proses dan Manajemen Proses

Linux : Operasi File dan Struktur Direktori

Anugerah Pewarta Astra 2022 : PEMANFAATAN KEMAJUAN TEKNOLOGI DALAM MEMBUAT LOBTECH, ALAT BANTU BUDIDAYA LOBSTER