Shell script adalah kumpulan perintah sistem operasi UNIX yang disusun secara berurutan untuk menyelesaikan tugas tertentu. Shell script dapat menggunakan variabel, operator, dan struktur logika seperti percabangan dan perulangan untuk mengontrol alur eksekusi perintah.
2. My first Shell Script
• vi myfirstscript.sh
#! /bin/csh
set directory=`pwd`
echo The date today is `date`
echo The current directory is $directory
• chmod u+x myfirstscript.sh
• myfirstscript.sh
3. UNIX Shell Scripts
• UNIX shell scripts adalah suatu
sekumpulan teks yang berisi perintah-
perintah UNIX yang berurutan
• Seperti halnya bahasa pemrograman,
programmer membuat script dengan text
editor
• Shell script tidak membutuhkan compiler
• Hal ini terjadi karena UNIX shell seolah-
olah bertingkahlaku seperti interpreter
saat membaca script dari file
4. UNIX Shell Scripts (Cont’d)
• Karena bertingkah laku seperti interpreter maka statement
yang ada pada script akan langsung di translasikan pada
instruksi executable dan menyebabkannya untuk langsung
menjalankan executable tersebut
• Setelah anda menulis shell script, anda akan
memberitahukan pada OS bahwa program dapat dijalankan.
• Hal ini dapat dilakukan dengan menggunakan perintah
chmod untuk merubah mode dari file.
5. UNIX Shell Scripts (cont’d)
• Perintah chmod memberi tahu komputer
siapa saja yang berhak menggunakan file
tersebut: owner (u), group (g), atau other
users (o)
• Program Shell berjalan sedikit kurang
cepat dari pada compiled programs,
karena shell harus menterjemahkan
masing-masing perintah UNIX sebelum
mengeksekusinya
6. Pemrograman Shell
Yang umum digunakan pada kebanyakan varian
UNIX adalah:
• Bourne Shell (sh), shell pertama yang dibuat oleh
UNIX
• Bourne Again Shell (bash), dibuat oleh programmer
dari Free Software Foundation, open source shell
dari GNU
• Korn Shell (ksh), dibuat oleh David Korn, pembuat
dari Bourne shell, tidak disebarluaskan.
• C Shell (csh), dibuat oleh Bill Joy, pembuat vi,
mengimplementasikan struktur bahasa C.
• Terminal Based C Shell (tcsh), versi lanjut dari the
Berkeley UNIX C shell (csh)
7. Pemrograman Shell
• Semua versi linux menggunakan
Bash shell (Bourne Again Shell)
sebagai shell standarnya
• Semua sistem system menyertakan
C shell dan Bourne shell.
9. Pemrograman Shell
• Fitur-fitur programming dari UNIX shell:
Shell variables: script anda biasanya sering menyimpan
variables
nilai untuk digunakan kemudian, variabel shell
merupakan nama simbolik yang dapat diakses dari
memori
Operators: Script Shell mendukung banyak operator,
Operators
termasuk operasi matematik
Logic structures: Script Shell mendukung sequential
structures
logic (untuk menjalankan perintah serial), decision logic
(untuk percabangan), looping logic (untuk proses
looping), dan case logic (untuk proses seleksi)
11. Variables
• Variables merupakan nama simbolik yang
merepresentasikan nilai yang disimpan di
memori
• Tiga tipe dari variabel adalah
configuration variables, environment
variables, dan shell variables
• gunakan configuration variables untuk
menyimpan informasi tentang setup dari
sistem operasi dan jangan merubahnya.
• Anda dapat merubah environment
variables dengan nilai inisial
12. Variables (Cont’d)
• Variabel ini, dimana UNIX membacanya pada
saat anda login, menetapkan banyak
karakteristik dari sesi anda
• Shell variables adalah variabel yang di buat
pada script
• Environment dan configuration variables
memperlihatkan nama standar, seperti HOME,
PATH, SHELL, USERNAME, dan PWD
14. Variables (Cont’d)
1. Ciri khas Environment Variables
– HOME: pathname of your home directory
– PATH: directories where shell is to look for
commands
– USER: your user name
– PWD: your current working directory
– MAIL: pathname of your system mailbox
– SHELL: pathname of your shell
2. Isi dari variable dapat diakses menggunakan ‘$’:
Misal: $ echo $HOME
15. Variables (Cont’d)
• Cara pemberian variabel adalah
variable=value (kecuali pada C shell).
$ x=37; echo $x
$ 37
$ unset x; echo $x
• C shell menggunakan statement “set”.
$ set x = 37
• Anda dapat meng-set a pathname atau
variabel perintah atau menganti set dari
variable.
$ set mydir=`pwd`; echo $mydir
16. Variables (Cont’d)
• Untuk menulis daftar:
$ set Y = (UNL 123 CS251)
• Untuk meng-set elemen daftar:
$ set Y[2] = HUSKER
• Untuk melihat isi dari daftar:
$ echo $Y[2]
17. Variables (Cont’d)
• vi myinputs.sh
#! /bin/csh
echo Total number of inputs: $#argv
echo First input: $argv[1]
echo Second input: $argv[2]
• chmod u+x myinputs.sh
• myinputs.sh HUSKER UNL CSE
19. Shell Operators
• Operator dari Bash shell di bagi menjadi 3
kelompok: operator definisi dan evaluasi,
operator aritmatik, dan operator redirect
dan piping.
20. Operator Aritmetik
• expr mendukung operator berikut ini:
– arithmetic operators: +,-,*,/,%
– comparison operators: <, <=, ==, !=, >=, >
– boolean/logical operators: &, |
– precedence is the same as C, Java
21. Operator Aritmetik (contoh)
• vi math.sh
#!/bin/csh
set count=5
set count=`expr $count + 1`
echo $count
• chmod u+x math.sh
• math.sh
23. Shell Logic Structures
Empat struktur logika dasar:
Sequential logic
Decision logic
Looping logic
Case logic
24. Sequential Logic
• Statemen Sequential logic adalah
perintah-perintah yang akan dieksekusi
seperti apa yang terlihat terutur pada
program
• Pemberhentian dari urutan program
adalah jika adanya intruksi percabangan.
25. Decision Logic
• Decision logic membuat program
kita dapat dieksekusi pada kondisi
tertentu
• if statement adalah kontrol
keputusan utama pada jenis logika
ini.
26. Decision Logic (cont’d)
• if-then
if ( expr ) simple-command
• if-then-else
if ( expr ) then
command-set-1
[else
command-set-2]
endif
27. Decision Logic (cont’d)
• Contoh
#!/bin/csh
if ($#argv != 2) then
echo $0 needs two parameters!
echo You are inputting $#argv parameters.
else
set par1 = $argv[1]
set par2 = $argv[2]
endif
28. Decision Logic (cont’d)
Contoh:
#! /bin/csh
# number is positive, zero or negative
echo "enter a number:"
set number = $<
if ( $number < 0 ) then
echo "negative"
else if ( $number == 0 ) then
echo zero
else
echo positive
endif
29. Decision Logic (cont’d)
Contoh:
#!/bin/csh
if {( grep UNIX $argv[1] > /dev/null )} then
echo UNIX occurs in $argv[1]
else
echo No!
echo UNIX does not occur in $argv[1]
endif
30. Looping Logic
• Pada looping logic, perulangan akan dilakukan
sampai dengan kondisi tertentu tercapai
• Ada dua jenis mekanisme perulangan: for dan
while
• Gunakan perulangan for untuk proses perulangan
dengan nilai jangkauan tertentu.
31. While Loop
• Cara lain dari proses looping adalah adalah
menggunakan statement while
• Statement while statement digambarkan dengan
suatu loop yang berkelanjutan terus menerus
sampai dengan kondisi tertentu terpenuhi
• Selama statement dalam tanda kurung bernilai
trua maka statement yang ada diantara do dan
done akan terus di ulang-ulang
32. Looping Logic
while ( expr )
command_set
end
foreach var ( worddlist )
command_set
end
33. Looping Logic
Program:
#!/bin/csh
foreach person (Bob Susan Joe Gerry)
echo Hello $person
end
Output:
Hello Bob
Hello Susan
Hello Joe
Hello Gerry
34. Looping Logic
• Penambahan nilai integer dari 1 s/d 10
#!/bin/csh
set i=1
set sum=0
while ($i <= 10)
echo Adding $i into the sum.
set sum=`expr $sum + $i`
set i=`expr $i + 1`
end
echo The sum is $sum.
35. Switch Logic
• Struktur dari switch logic mempermudah
proses seleksi dari pencocokan ketika
melakukan proses pemilihan
• Memperbolehkan program untuk
mengambil suatu tindakan berdasar pada
nilai suatu variabel
36. Switch Logic
switch ( var )
case string1:
command_set_1
breaksw
case string2:
command_set_2
breaksw
default
command_set_3
endsw
37. Switch Logic
#!/bin/csh
if ($#argv == 0 ) then
echo "No arguments supplied...exiting"
else
switch ($argv[1])
case [yY]:
echo Argument one is yes.
breaksw
case [nN]:
echo Argument one is no.
breaksw
default:
echo Argument one is neither yes nor no.
breaksw
endsw
endif
38. Kesimpulan
• A high-level language harus di konversi
menjadi low-level (machine) language
sebelum komputer mengeksekusinya
• Shell menterjemahkan script UNIX shell
• Script UNIX shell, dibuat dengan vi atau
aplikasi editor lainnya, berisikan
instruksi dimana kita tidak perlu
membuatnya karena intruksi tersebut
telah ada pada sistem operasi.
39. Kesimpulan (cont’d)
• Linux shells bersalar dari UNIX Bourne, Korn,
dan C shells
• UNIX terdiri dari 3 jenis tipe variabel:
– Configuration
– Environment
– Shell
• Shell mendukung banyak operator, termasuk
sejumlah operasi matematika.
• Struktur logic yang ada pada shell diantaranya
adalah sequential, decision, looping, dan case