shell programming

39
Shell Programming Oleh: Idris Winarno

Upload: gomer

Post on 05-Jan-2016

85 views

Category:

Documents


7 download

DESCRIPTION

Shell Programming. Oleh: Idris Winarno. 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. UNIX Shell Scripts. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Shell Programming

Shell Programming

Oleh:

Idris Winarno

Page 2: Shell Programming

My first Shell Script

• vi myfirstscript.sh

#! /bin/cshset directory=`pwd`

echo The date today is `date`

echo The current directory is $directory

• chmod u+x myfirstscript.sh

• myfirstscript.sh

Page 3: Shell Programming

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

Page 4: Shell Programming

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.

Page 5: Shell Programming

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

Page 6: Shell Programming

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)

Page 7: Shell Programming

Pemrograman Shell

• Semua versi linux menggunakan Bash shell (Bourne Again Shell) sebagai shell standarnya

• Semua sistem system menyertakan C shell dan Bourne shell.

Page 8: Shell Programming

Pemrograman Shell

• Fitur-fitur programming dari UNIX shell:

Shell variablesShell variables

OperatorsOperators

Logic structuresLogic structures

Page 9: Shell Programming

Pemrograman Shell

• Fitur-fitur programming dari UNIX shell: Shell variablesShell variables: script anda biasanya sering menyimpan

nilai untuk digunakan kemudian, variabel shell merupakan nama simbolik yang dapat diakses dari memori

OperatorsOperators: Script Shell mendukung banyak operator, termasuk operasi matematik

Logic structuresLogic structures: Script Shell mendukung sequential logic (untuk menjalankan perintah serial), decision logic (untuk percabangan), looping logic (untuk proses looping), dan case logic (untuk proses seleksi)

Page 10: Shell Programming

Pemrograman Shell

• Fitur-fitur programming dari UNIX shell:

Shell variablesShell variables

OperatorsOperators

Logic structuresLogic structures

Page 11: Shell Programming

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

Page 12: Shell Programming

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

Page 13: Shell Programming

Variables (Cont’d)

Untuk melihat daftar dari environment variables:

$ printenv

atau:

$ printenv | more

Page 14: Shell Programming

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

Page 15: Shell Programming

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

Page 16: Shell Programming

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]

Page 17: Shell Programming

Variables (Cont’d)

• vi myinputs.sh#! /bin/cshecho Total number of inputs: $#argvecho First input: $argv[1]echo Second input: $argv[2]

• chmod u+x myinputs.sh• myinputs.sh HUSKER UNL CSE

Page 18: Shell Programming

Pemrograman Shell

• Fitur-fitur programming dari UNIX shell:

Shell variablesShell variables

OperatorsOperators

Logic structuresLogic structures

Page 19: Shell Programming

Shell Operators

• Operator dari Bash shell di bagi menjadi 3 kelompok: operator definisi dan evaluasi, operator aritmatik, dan operator redirect dan piping.

Page 20: Shell Programming

Operator Aritmetik

• expr mendukung operator berikut ini:– arithmetic operators: +,-,*,/,%– comparison operators: <, <=, ==, !=, >=, >– boolean/logical operators: &, |– precedence is the same as C, Java

Page 21: Shell Programming

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

Page 22: Shell Programming

Shell Programming

• Fitur-fitur programming dari UNIX shell:

Shell variablesShell variables

OperatorsOperators

Logic structuresLogic structures

Page 23: Shell Programming

Shell Logic Structures

Empat struktur logika dasar:

Sequential logic

Decision logic

Looping logic

Case logic

Page 24: Shell Programming

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.

Page 25: Shell Programming

Decision Logic

• Decision logic membuat program kita dapat dieksekusi pada kondisi tertentu

• if statement adalah kontrol keputusan utama pada jenis logika ini.

Page 26: Shell Programming

Decision Logic (cont’d)

• if-then

if ( expr ) simple-command

• if-then-elseif ( expr ) then

command-set-1[else

command-set-2]endif

Page 27: Shell Programming

Decision Logic (cont’d)

• Contoh

#!/bin/cshif ($#argv != 2) then echo $0 needs two parameters! echo You are inputting $#argv parameters.else set par1 = $argv[1] set par2 = $argv[2]endif

Page 28: Shell Programming

Decision Logic (cont’d)

Contoh:

#! /bin/csh# number is positive, zero or negativeecho "enter a number:"set number = $<if ( $number < 0 ) then

echo "negative"else if ( $number == 0 ) then

echo zeroelse echo positiveendif

Page 29: Shell Programming

Decision Logic (cont’d)

Contoh:

#!/bin/cshif {( 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

Page 30: Shell Programming

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.

Page 31: Shell Programming

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

Page 32: Shell Programming

Looping Logic

while ( expr )

command_set

end

foreach var ( worddlist )

command_set

end

Page 33: Shell Programming

Looping Logic

Program:

#!/bin/cshforeach person (Bob Susan Joe Gerry)

echo Hello $personend

Output:Hello BobHello SusanHello JoeHello Gerry

Page 34: Shell Programming

Looping Logic

• Penambahan nilai integer dari 1 s/d 10

#!/bin/cshset i=1set sum=0while ($i <= 10)

echo Adding $i into the sum. set sum=`expr $sum + $i` set i=`expr $i + 1`

endecho The sum is $sum.

Page 35: Shell Programming

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

Page 36: Shell Programming

Switch Logic

switch ( var )case string1:

command_set_1breaksw

case string2:command_set_2breaksw

defaultcommand_set_3

endsw

Page 37: Shell Programming

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

Page 38: Shell Programming

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.

Page 39: Shell Programming

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