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
No comments:
Post a Comment