Jumat, 08 Januari 2016
Shell Script pada CentOS
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
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
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 :
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.
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.
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
(( ))
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
false
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
Demikian blog dari saya,
semoga bermanfaat,
sampai bertemu lagi
di semester 4 :)
Sekian dan terima kasih.
Wassalamualaikum wr wb.
Regards,
Firman Giri
Langganan:
Posting Komentar
(
Atom
)
Tidak ada komentar :
Posting Komentar