Senin, 02 Januari 2017

Shell Script

    Shell script adalah suatu file yang berisi perintah-perintah yang harus dikerjakan oleh shell. Perintah dalam shell script biasa berupa perintah yang dapat dibrikan prompt kendali alur(Flow Control Command). Perintah kendali terbagi menjadi 2 yaitu :
  1. Percabangan 
  2. Perulangan
1. Membuat shell script
 File shellscript dapat dibuat dengan teks editor, seperti vi, pico, joe, gedit, kedit, dll. Setip file script    biasanya diawali dengan baris seperti ini :
    # ! /bin/bash 
yang artinya script dibawah baris tersebut akan dijalankan dengan intepreter /bin/bash. Untuk menandai baris komentar, digunkan tanda " # " pada awal baris.

2. Menjalankan Shell Script
Script dijalankan seperti executable file dengan cara mengetikkan nama file 
pada prompt.

Ada hal yang harus diperhatikan dalam menjalankan script, yaitu :
1. Direktori tempat script berada harus termasuk dalam search PATH 
Gunakan perintah echo $PATH untuk melihat search PATH yang berlaku saat ini

2. File script harus memiliki ijin akses (permission) r dan x. 
Ubah dengan perintah chmod jika perlu !


  Variabel

Variabel merupakan nama yang mewakili suatu harga string. Nama variabel 
harus diawali dengan alfabet (a..z, A..Z) atau garis bawah/underscore (_) dan 
tidak boleh diawali dengan angka.
Memberi nama variabel :

* Penamaan variabel yang benar             *
Penamaan variabel yang salah Nama                                                           5hari                      hari                                                              2jum _
jumlah


a. Menyimpan Harga Variabel
Bentuk umum: Nama_Var=Harga
Keterangan:
Tidak boleh ada spasi di kiri dan kanan "=".

b. Menampilkan Harga Variabel
Perintah echo digunakan untuk menampilkan nilai yang disimpan dalam suatu 
variabel. Bentuk umum : echo $Nama_Var Keterangan: $ merupakan karakter 
khusus bagi shell yang menyatakan substitusi variabel.
$Nama_Var berarti substitusi harga yang disimpan dalam variabel bernama 
Nama_Var pada posisi tersebut.

c. Menghapus Variabel
Caranya : isi dengan NULL
Contoh :
$ nama= atau
$ nama='' atau
$ nama="" atau
$ unset nama

Parameter
Parameter terbagi menjadi 3, yaitu : 

a. Parameter Posisi (Positional Parameter)
Variabel yang diketikkan pada baris perintah.
Parameter posisi : $0, $1, $2 ... $9

b. Parameter Khusus (Special Parameter)
Variabel yang mempunyai arti khusus bagi shell dan sudah ditentukan oleh shell.
Yang termasuk dalam parameter khusus diantaranya : 
                                            $#, $*, $@

1. $#, fungsinya untuk menyimpan jumlah parameter yang diketikkan pada baris 
perintah.

2. $*, digunakan untuk menyimpan nilai semua parameter yang diketikkan pada 
baris perintah.

3. $@, fungsinya sama dengan $* kecuali bila dalam kutip ganda ("$@") akan     
menempatkan setiap argumen posisi dalam kutip ganda.

4. Mengganti "$*" dengan "$@"

c. Pengutipan
Karakter khusus adalah karakter yang mempunyai fungsi khusus bagi shell.
Contoh karakter khusus :
? : substitusi nama file
* : substitusi nama file
` : substitusi perintah
$ : substitusi variabel
Pengutipan (quoting) berfungsi untuk mengabaikan fungsi dari karakter khusus.

Terdapat empat macam pengutipan :
1. Backslash (\)

2. Kutip Tunggal (' ')
Fungsi : mengabaikan semua karakter khusus di dalamnya, seperti newline, tabs,
 spasi.

3. Kutip Ganda (" ")
Fungsi : mirip dengan kutip tunggal kecuali tidak mengabaikan : $ 
(substitusi variabel )
Back quote/kut ip bal ik (`)
Backslash (\ )

4. Kutip Balik
Fungsinya untuk menjalankan perintah yang ada di dalamnya serta menyisipkan
 standard output nya pada posisi tersebut (command substitution).
Bentuk umum : `perintah`

  * Input dan Output
a. read
Fungsi : untuk membaca data dari keyboard atau file.

Bentuk umum : read var1 var2 ... varn

Keterangan : kata pertama diassign ke var1, kata kedua ke var2 dan seterusnya. 
jika jumlah variabel dalam list lebih sedikit dari jumlah data yang dibaca maka 
sisa baris disimpan dalam variabel terakhir (varn).

Contoh :
1. Membaca data nama dan alamat dari keyboard
2. Menampilkan isi variabel nama
3. Menampilkan isi variabel alamat

b. echo
Fungsi : untuk menampilkan string ke standard output (layar).

Bentuk umum : echo [pilihan] arg1 arg2 ... argn

Keterangan : Setiap argumen dipisahkan oleh satu spasi.
Pilihan yang sering digunakan :
-n : tidak menampilkan baris baru (newline)
-e : untuk menampilkan backslashescaped characters
Backslash escaped characters :

Contoh :
1. Menampilkan isi direktori
2. Menampilkan baris kosong
3. Menampilkan tabulasi
4. Menampilkan baris baru
5. Membuat script untuk menerima input tanpa escape character
6. Membuat script untuk menerima input dengan escape character
7. Pencabangan dengan If
Percabangan terbagi menjadi :

a. If
     Fungsinya untuk mengambil keputusan perintah mana yang akan 
dijalankan dari beberapa pilihan yang ada.
Bentuk Umum: if <kondisi>

Keterangan :
Kondisi diperoleh sebagai hasil eksekusi program (berupa exit status).
Exit status = 0 maka perintahperintah antara then dan fi dilaksanakan.
Exit status <> 0
•Perintah antara then dan if dilompati.
•Untuk bentuk umum dengan else perintahperintah antara else dan fi
dilaksanakan.
b. Bentuk else if
Bentuk else if digunakan jika pilihan yang harus dilaksanakan lebih dari dua.

c. Exit Status
      yaitu Suatu angka yang menunjukkan sukses atau tidaknya suatu
program atau perintah dijalankan. Jika Exit status bernilai..., maka :
Exit status = 0 berarti sukses.
Exit status <> 0 berarti gagal.
Exit status dari suatu perintah pipeline adalah exit status dari perintah paling 
akhir dalam pipeline( | ).

d. Variabel $?
     $? merupakan variabel penyimpanan exit status dari perintah terakhir.

 
8. Evaluasi Kondisi
 
Fungsi : melakukan testing satu kondisi atau lebih
a. test

Bentuk umum : test ekspresi atau [ ekspresi ] atau [[ ekspresi ]]

Keterangan : ekspresi adalah kondisi yang akan ditest untuk bentuk [ ekspresi ]
 harus ada spasi setelah tanda "[" dan sebelum tanda "]" test mengembalikan :
•exit status = 0 jika ekspresi bernilai true.
•exit status <> 0 jika ekspresi bernilai false.

b. Operator String

c. Operator Integer
Keterangan :
Shell tidak akan membedakan tipe harga yang disimpan dalam variabel tetapi test akan memperlakukan suatu harga sebagai integer jika dibandingkan dengan 
operator integer.

d. Operator File

e. Operator Logika
Operator logika terbagi menjadi :

1. Operator negasi (!)
Fungsi : menegasikan hasil evaluasi kondisi/ekspresi

2. Operator and (a)
Fungsi :
melakukan fungsi logika and terhadap 2 ekspresi mengembalikan hasil true bila 
kedua ekspresi benar. Memiliki prioritas lebih rendah dibandingkan dengan 
operator string, integer dan file.

3. Operator or (o)
Fungsi :
melakukan fungsi logika or terhadap 2 ekspresi mengembalikan hasil true bila salah satu ekspresi benar
Memiliki prioritas lebih rendah dibandingkan dengan operator a.

  9. Pengulangan dengan for
         Berfungsi untuk menjalankan sekelompok perintah secara berulangulang 
sesuai dengan jumlah yang sudah ditentukan. Perintah-perintah antara do dan 
done disebut badan Iterasi (Body Loop).
         Pertama kali loop dijalankan, var disubstitusi dengan word1 
(atau $1 untuk for tanpa list) lalu badan iterasi dijalankan. Berikutnya var 
disubstitusikan dengan word2 (atau $2 untuk for tanpa list) kemudian badan 
iterasi dieksekusi lagi dan seterusnya. Badan literasi ini dijalankan berulangulang 
dari atas ke bawah sebanyak:
•Jumlah word dalam list setelah in
•Jumlah argumen pada command line (untuk for tanpa list)

Contoh :
1. For dengan list
2. For tanpa list

sumber : http://aratakame357.blogspot.co.id/2015/10/shell-pada-linux-centos-shell-perintah-1.html





Tidak ada komentar:

Posting Komentar