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



























