Jumat, 08 Januari 2016

Shell Script pada CentOS

Tidak ada komentar :

Shell Script pada CentOS

Assalamualaikum wr wb :)

Hallo bloggers,
sampai kita pada penghujung pertemuan pada semester ini,
saya ingin meminta maaf apabila pada penulisan blog saya, masih terdapat banyak kekurangn,
karena sesungguhnya kesempurnaan hanya milik Allah SWT.

dan juga saya ingin mengucapkan terima kasih yang sungguh banyak kepada Dosen
 Mata Kuliah Perangkat Lunak Jaringan 1 , Ibu Yessy Fitriani yang telah membimbing saya sampai dapat mengerti tentang mata kuliah ini di semestr 3 ini.
Semoga pada semester 4 nanti, saya dapat melanjutkan tentang PLJ 1 ini ke mata kuliah PLJ 2.



oke, kali ini kita akan membahas tentang Shell Script pada CentOS,

Check this out :)


Shell script adalah suatu file yang berisi perintah yang harus di kerjakan oleh shell.perintah dalam suatu script
bisa berupa perintah yang dapat dberikan dari prompt atau perintah alir. perintah kendali alir adalah perintah untuk mengatur urutan eksekusi perintah dalam suatu script.

 Parameter Posisi (Positional Parameter)
       Variabel yang diketikkan pada baris perintah. Parameter posisi : $0, $1, $2 ... $9
$ cat tetangga
who | grep $1
$ who
unyil   ttyp03   Feb   16   08:37 usro    ttyp09   Feb   16   09:13
$ tetangga unyil
unyil   ttyp03   Feb   16   08:37       variabel $1  akan disubstitusi oleh  "unyil"  sehingga program tetangga menjadi  who | grep unyil 

       Variabel yang mempunyai arti khusus bagi shell dan sudah ditentukan oleh shell.
Yang termasuk dalam parameter khusus diantaranya : $#, $*, $@
1.   $#
      Digunakan untuk menyimpan jumlah parameter yang diketikkan pada baris perintah
$ cat > arg
    echo Nama program = $0 echo Jumlah argumen = $#
    echo Argumen1=:$1: Argumen2=:$2: Argumen3=:$3: [Ctrl]+[D]
$ arg a b c
   Nama program = arg
  Jumlah argumen = 3
  Argumen1=:a: Argumen2=:b: Argumen3=:c:
$ arg
  Nama program = arg
   Jumlah argumen = 0
   Argumen1=:: Argumen2=:: Argumen3=::
$ arg "a b c"
    Nama progarm = arg
    Jumlah argumen = 1
    Argumen1=:a b c: Argumen2=:: Argumen3=::

2.   $*
      Digunakan untuk menyimpan nilai semua parameter yang diketikkan pada  
      baris perintah. Contoh :
$ cat > arg2
   echo Jumlah argumen = $# echo yaitu :$*: [Ctrl]+[D]
$ arg2 a b c
   Jumlah argumen = 3 yaitu :a b c:
$ arg2
   Jumlah argumen = 0 yaitu ::

3.   $@
     Fungsinya  sama dengan $* kecuali bila dalam kutip ganda ("$@") akan
     menempatkan  setiap argumen posisi dalam kutip ganda.
$ cat > arg3
echo Jumlah argumen = $#
for arg in "$*" do
            echo $arg
done
 [Ctrl]+[D]
$ arg3 a b c
Jumlah argumen = 3
a
b
c
$ arg3 "a b" c
Jumlah argumen = 2
ab
c

4.   Mengganti "$*" dengan "$@"
$ cat > arg4
echo Jumlah argumen = $#
for arg in "$@" do
           echo $arg
done
[Ctrl]+[D]
$ arg4 a b c
Jumlah argumen = 3
a
b
c
$ arg4 "a b" c
Jumlah argumen = 2
a b c

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 tiga macam pengutipan  :
1.   Backslash (\) Contoh :
$ echo >
bash: syntax error near unexpected token '>'
$ echo \>                     > tidak lagi dianggap sebagai karakter pembelokan

2.   Kutip Tunggal (' ')
Fungsi : mengabaikan semua karakter khusus di dalamnya, seperti newline, tabs, spasi
Contoh :
$ echo satu         dua        tiga
satu dua tiga                     
$ echo 'satu        dua        tiga'
satu     dua           tiga        

3.   Kutip Ganda (" ")
Fungsi : mirip dengan kutip tunggal kecuali tidak mengabaikan :
                -    $ (substitusi variabel)
                -    Back quote/kutip balik (`)
                -    Backslash (\) Contoh :
$ x=satu
$ echo $x
satu
$ echo '$x'
$x
$ echo "$x"
satu
Fungsinya  untuk  menjalankan  perintah  yang  ada  di  dalamnya  serta menyisipkan  standard output-nya pada posisi tersebut (command substitution).
Bentuk umum : `perintah`
Contoh :
$ echo Hari ini : `date`
Hari ini : Tue Feb 16 09:34:40 JAVT 2013
Karakter                               Arti
   ?                           Match satu karakter
   *                          Match semua karakter
  [ ... ]                     Match pilihan karakter  
$ ls -l    
total 10
-rw-r--r--             1              badu      imt         20           Mar        12           1999       Test
-rw-r--r--             1              badu      imt         38           Mar        12           1999       cetak
-rw-r--r--             1              badu      imt         18           Mar        12           1999       test
-rw-r--r--             1              badu      imt         18           Mar        12           1999       test1
-rw-r--r--             1              badu      imt         20           Mar        12           1999       test2
$ ls test?                                                                                                                             
test1 test2                                                                                                                         
$ ls *                                     
Test  cetak   test    test1    test2
$ ls  [Tt]est*      
Test       test        test1      test2

Input dan Output
read
Fungsi : untuk membaca data dari keyboard atau file. Bentuk umum :
read var1 var2 ... varn
Keterangan :
 -    kata  pertama di-assign ke var 1, 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 (var n).
1.   Membaca data nama dan alamat dari keyboard
       $ read nama alamat dudi depok
2.   Menampilkan isi variabel nama
      $ echo $nama
         dudi
3.   Menampilkan isi variabel alamat
      $ echo $alamat
         depok

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 backslash-escaped characters

1.   Menampilkan isi direktori
      $ echo *
      bin mail misc
2.   Menampilkan baris kosong
      $ echo
3.   Menampilkan tabulasi
      $ echo -e "x\ty"
      x   y
4.   Menampilkan baris baru
       $ echo -e "\n\nlompati 2 baris"
        lompati 2 baris
5.   Membuat script untuk menerima input - tanpa escape character
      $ cat > masukan1 echo "Nama Anda: " read nama
         echo "Nama anda adalah $nama" [Ctrl]+[D]
      $ masukan1
      Nama Anda:
      Unyil
      Nama anda adalah Unyil
6. Membuat script untuk menerima input - dengan escape character
   $ cat > masukan2
     echo -e "Nama Anda: \c" read nama
     echo "Nama anda adalah $nama" [Ctrl]+[D]
   $ masukan2
      Nama Anda: Unyil
      Nama anda adalah Unyil

Pencabangan dengan If
If
Fungsi : untuk mengambil keputusan perintah mana yang akan dijalankan dari beberapa pilihan yang ada

Bentuk umum :
 
-     Kondisi diperoleh sebagai hasil eksekusi program (berupa exit status).
-     Exit status = 0 maka perintah-perintah antara then dan fi dilaksanakan.
-     Exit status <> 0
        Perintah antara then dan fi dilompati.
        Untuk bentuk umum dengan else perintah-perintah antara else dan fi dilaksanakan.
Exit status
Suatu angka yang menunjukkan sukses atau tidaknya suatu program atau perintah dijalankan.
                -    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.

Variable $ ?
$? merupakan variabel penyimpanan exit status dari perintah terakhir.
 
                

Bentuk else if
Bentuk else if digunakan jika pilihan yang harus dilaksanakan lebih dari dua.
Bentuk umum :
 
Evaluasi Kondisi
melakukan testing satu kondisi atau lebih
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. 

Operator String
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.
                                                Operator file
$ ls -l







total 6







drwxr-xr-x

2
badu
imt
32
Mar 12
1999
-rw-r--rw-

1
badu
imt
18
Mar 12
1999
-rw-r--r--

1
badu
imt
20
Mar 12
1999
$ [ -f hasil

]





$ echo $?







0





True

$ [ -d data
]






$ echo $?







0





True









Operator logika
1.   Operator negasi (!)
      Fungsi : me-negasi-kan hasil evaluasi kondisi/ekspresi
2.   Operator and (-a) Fungsi :
                -    melakukan fungsi logika and terhadap 2 ekspresi
                -    mengembalikan hasil true bila kedua ekspresi benar
Bentuk umum : [ ekspresi1  -a ekspresi2 ] Keterangan :
Memiliki prioritas lebih rendah dibandingkan dengan operator string, integer dan file.

                                   Pengulangan dengan for
Berfungsi untuk menjalankan sekelompok perintah secara berulang-ulang sesuai dengan jumlah yang sudah ditentukan.

Keterangan :
-     Perintah-perintah antara do dan done disebut badan Iterasi (Body Loop)
-     Pertama kali loop dijalankan, var disubstitusi dengan word 1 (atau $1 untuk for tanpa
      list) lalu badan iterasi dijalankan.
-    Berikutnya var disubstitusikan dengan word 2  (atau $2 untuk for tanpa list) kemudian
     badan iterasi dieksekusi lagi dan seterusnya.
-    Badan iterasi ini dijalankan berulang-ulang dari atas ke bawah sebanyak:
     --> Jumlah word dalam list setelah in
     --> Jumlah argumen pada command line (untuk for tanpa list)
Pencabangan dengan case
case berfungsi untuk membandingkan satu harga dengan sejumlah pola.
Keterangan :
-    case membandingkan harga dengan pola-pola yang ada
     dari atas ke bawah.
-    jika  ditemukan  pola  yang  tepat  maka  perintah-
     perintah  untuk  pola  tersebut  dijalankan (dibatasi ;;).
-    jika tidak ditemukan maka tidak ada perintah-perintah
     dalam case yang dijalankan.
-    case dapat memanfaatkan sejumlah pattern matching
     character seperti :
        *
        ?
        [ … ]

Operasi Logika or Antar Dua Pola
Bentuk umum: pola1 | pola2
Keterangan : harga dapat diterima apabila memenuhi salah satu pola.


Keterangan :
Perintah date +%H hanya akan menampilkan bagian jam-nya saja dari perintah date


Bentuk && (and-if)
Fungsi : mengatur eksekusi perintah berdasarkan exit status perintah sebelumnya.

Bentuk umum : perintah1 || perintah2


Keterangan :
perintah2 dikerjakan bila perintah1 menghasilkan exit status = 0, jika tidak maka perintah2 dilompati (melakukan operasi logika and)

                               Bentuk | | (or-if)
Ekspresi Aritmetika
Operator yang digunakan dalam ekspresi aritmatika :
+             :     penjumlahan
-              :     pengurangan
/              :     pembagian
*             :     perkalian
%            :     modula (sisa pembagian)
Keterangan :
-    "+" dan "-" memiliki prioritas yang lebih rendah dibanding tiga operator
      lain.
-    setiap operator didahului dan diikuti oleh spasi.
-    operator "*" harus dikutip agar tidak rancu dengan substitusi file.
expr
Bentuk umum : expr ekspresi

let
((  ))
Pengulangan dengan while dan until


true
Perintah  true digunakan   dalam  while apabila  menginginkan   pengulangan   secara  terus menerus.

until
Bentuk umum :
until kondisi
do
 done
                perintah
                perintah
                :
Keterangan :
-     periksa kondisi
-    jika exit status <> 0 jalankan perintah-perintah antara do dan done
-    ulangi langkah pertama
-    jika exit status = 0  stop

stop

false

Perintah  false digunakan  dalam  until apabila  menginginkan  pengulangan  secara  terus menerus.
Contoh :
$ cat > ulang2
                until false
                do
                echo "Hallo" done

                [Ctrl]+[D]
$ ulang2
                Hallo Hallo Hallo
[Ctrl]+[C]                           Tekan Ctrl-C  untuk menghentikan program

break
Fungsi : keluar dari pengulangan Bentuk umum : break n Keterangan :
-     keluar dari n loop terdalam
Contoh :
$ cat > potong
  i=0
     while [ $i -le 4 ]
          do
             let i=i+1
          if [ $i = 3 ]
       then
      break fi
   done
 echo $i
 [Ctrl]+[D]
$ potong
1
2

continue
Fungsi : melompati sisa perintah dalam loop untuk kembali melanjutkan loop dari atas (kembali ke pemeriksaan kondisi)
Bentuk umum : continue n
Keterangan :
-     n loop terdalam dilompati

I/O Redirection dalam Pengulangan

FUNGSI
Merupakan kumpulan perintah yang dapat dipanggil berulang kali dalam suatu shell script. Fungsi dieksekusi seperti perintah biasa.
Bentuk Umum :
     function nama_fungsi () { perintah; ... perintah; }
 atau
     nama_fungsi() { perintah; ... perintah; }
Keterangan :
Setelah tanda "{" harus diikuti spasi dan sebelum tanda "}" juga harus didahului spasi
$ cat > fungsi
nu () { who | wc -l; } [Ctrl]+[D]
$ . fungsi
$ who
unyil                      ttyp01   Feb        15           14:00    
badu                      ttyp02   Feb        15           14:01    
usro                       ttyp03   Feb        15           14:03    
ucrit                       ttyp04   Feb        15           14:05
$ nu                                      
4                                                                             

Return
Digunakan untuk menghentikan eksekusi suatu fungsi dan kembali ke program yang memanggilnya                      
Bentuk umum : return n
Keterangan :                     
n = exit status yang ingin dikembalikan 


Demikian blog dari saya,
semoga bermanfaat,

sampai bertemu lagi
di semester 4 :)


Sekian dan terima kasih.

Wassalamualaikum wr wb.


Regards,

Firman Giri

Tidak ada komentar :

Posting Komentar

Ads Inside Post