Shell Script dan penggunaannya pada Centos (Linux)


Assalamualaikum. Wr, Wb
Halo teman-teman kembali lagi dengan saya ryan. oke pada kesempatan kali ini saya akan mencoba mengupas materi tentang Shell Script pada Centos (Linux). Kalo teman-teman masih ingat ryan pernah membahas mengenai Shell Script pada postingan sebelumnya cuman masih sebatas pengantar saja. oke dari pada lama-lama lagi kita langsung saja ke pembahasan ya teman-teman.

Shell Script adalah sebuah fitur pada Centos terumumnya linux dimana pada shell script itu sendiri kita bisa membuat sebuah program dan juga bisa mengeksekusinya. Sebelum kita membuat contoh program dalam shell script kita harus terlebih dahulu mengetahui apa-apa saja yang harus ada pada isi suatu program agar program dapat dikerjakan atau dieksekusi oleh perangkat.

Variabel yang memiliki arti khusus  bagi shell yang sudah ditentukan oleh shell. yang termasuk variabel 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 program = 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:
$ arg
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

$ arg "ab" 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 fil
*        :    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


Input dan Output
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

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

$? merupakan variabel penyimpanan exit status dari perintah terakhir.
Bentuk else if digunakan jika pilihan yang harus dilaksanakan lebih dari dua.
Bentuk umum :

 


Evaluasi Kondisi
melakukan testing satu kondisi atau lebih

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. 
Keterangan :
Shell  tidak  akan  membedakan  tipe  harga  yang  disimpan  dalam  variabel  tetapi  test akan memperlakukan suatu harga sebagai integer jika dibandingkan dengan operator integer.


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.

3.) Operator or (-o)Fungsi :
          -  melakukan fungsi logika or terhadap 2 ekspresi
          -  mengembalikan hasil true bila salah satu ekspresi benar
Bentuk umum : [ ekspresi1 -o ekspresi2 ] Keterangan :
Memiliki prioritas lebih rendah dibandingkan dengan operator -a.


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 :
        *
        ?
        [ … ]


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
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 umum : perintah1 || perintah2
 Keterangan :
 perintah2 dikerjakan  hanya  jika  perintah1menghasilkan  exit  status  <>  0 (melakukan  operasi logika or)
Keterangan :
Tanda : berarti tidak melakukan apa-apa

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.


Pengulangan dengan while dan until

Perintah  true digunakan   dalam  while apabila  menginginkan   pengulangan   secara  terus menerus

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

Demikian pembahasan Shell Script pada centos oleh saya, jika teman-teman sekalian masih bingung ataupun masih susah memahami materi yang dijabarkan oleh saya, teman-teman bisa menanyakan langsung ke saya lewat kontak yang telah saya sediakan di blog ini, ataupun jika teman-teman sekalian mau ketemu secara langsung, bisa langsung ke homebase Di Kampus STT PLN Jakarta Lantai 3 tepatnya di Laboraturium Komputer Dasar hehe.. oke. mungkin cukup sekian akhir kata saya ucapkan..
Wassalamualaikum Wr, Wb








Ryan Pace

Phasellus facilisis convallis metus, ut imperdiet augue auctor nec. Duis at velit id augue lobortis porta. Sed varius, enim accumsan aliquam tincidunt, tortor urna vulputate quam, eget finibus urna est in augue.

No comments:

/* Untuk Disabled Gambar */