SlideShare una empresa de Scribd logo
1 de 39
Shell Programming



Oleh: Ahmad kurniawan
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

• 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
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.
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
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)
Pemrograman Shell

• Semua versi linux menggunakan
  Bash shell (Bourne Again Shell)
  sebagai shell standarnya
• Semua sistem system menyertakan
  C shell dan Bourne shell.
Pemrograman Shell

• Fitur-fitur programming dari UNIX
  shell:
  Shell variables
  Operators
  Logic structures
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)
Pemrograman Shell

• Fitur-fitur programming dari UNIX
  shell:
  Shell variables
  Operators
  Logic structures
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
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
Variables (Cont’d)

Untuk melihat daftar dari
  environment variables:
 $ printenv
atau:
  $ printenv | more
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
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
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]
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
Pemrograman Shell

• Fitur-fitur programming dari UNIX
  shell:
  Shell variables
  Operators
  Logic structures
Shell Operators



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

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

• Fitur-fitur programming dari UNIX
  shell:
  Shell variables
  Operators
  Logic structures
Shell Logic Structures

Empat struktur logika dasar:
Sequential logic
Decision logic
Looping logic
Case logic
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.
Decision Logic

• Decision logic membuat program
  kita dapat dieksekusi pada kondisi
  tertentu
• if statement adalah kontrol
  keputusan utama pada jenis logika
  ini.
Decision Logic (cont’d)

• if-then
     if ( expr ) simple-command
• if-then-else
       if ( expr ) then
              command-set-1
       [else
              command-set-2]
       endif
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
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
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
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.
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
Looping Logic

while ( expr )
 command_set
end

foreach var ( worddlist )
  command_set
end
Looping Logic

Program:

  #!/bin/csh
  foreach person (Bob Susan Joe Gerry)
    echo Hello $person
  end

Output:
  Hello Bob
  Hello Susan
  Hello Joe
  Hello Gerry
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.
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
Switch Logic

switch ( var )
  case string1:
      command_set_1
      breaksw
  case string2:
      command_set_2
      breaksw
  default
      command_set_3
endsw
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
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.
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

Más contenido relacionado

La actualidad más candente

Os2013 lap3-rizqitohopi
Os2013 lap3-rizqitohopiOs2013 lap3-rizqitohopi
Os2013 lap3-rizqitohopirizqitohopi
 
Mod -3_-_so_-_2013-2014
Mod  -3_-_so_-_2013-2014Mod  -3_-_so_-_2013-2014
Mod -3_-_so_-_2013-2014day_aftercoma
 
Perintah dasar linux
Perintah dasar linuxPerintah dasar linux
Perintah dasar linuxdindasilvana
 
Praktikum os bab2 perintah dasar di linux
Praktikum os bab2 perintah dasar di linuxPraktikum os bab2 perintah dasar di linux
Praktikum os bab2 perintah dasar di linuxSyaiful Ahdan
 
Praktikum os babk3
Praktikum os babk3Praktikum os babk3
Praktikum os babk3yats hidayat
 
Praktikum Sistem Operasi Linux
Praktikum Sistem Operasi LinuxPraktikum Sistem Operasi Linux
Praktikum Sistem Operasi LinuxMirza Afrizal
 
Basic PHP Syntax
Basic PHP SyntaxBasic PHP Syntax
Basic PHP Syntaxdaffa12
 
Fhs
FhsFhs
Fhskrtk
 
Modul so praktikum
Modul so praktikumModul so praktikum
Modul so praktikumjoko2016
 

La actualidad más candente (16)

Pemrograman shell2
Pemrograman shell2Pemrograman shell2
Pemrograman shell2
 
Os2013 lap3-rizqitohopi
Os2013 lap3-rizqitohopiOs2013 lap3-rizqitohopi
Os2013 lap3-rizqitohopi
 
Praktikum 4A
Praktikum 4APraktikum 4A
Praktikum 4A
 
Mod -3_-_so_-_2013-2014
Mod  -3_-_so_-_2013-2014Mod  -3_-_so_-_2013-2014
Mod -3_-_so_-_2013-2014
 
Perintah dasar linux
Perintah dasar linuxPerintah dasar linux
Perintah dasar linux
 
materi Php lanjutan
materi Php lanjutanmateri Php lanjutan
materi Php lanjutan
 
Pertemuan7
Pertemuan7Pertemuan7
Pertemuan7
 
Praktikum os bab2 perintah dasar di linux
Praktikum os bab2 perintah dasar di linuxPraktikum os bab2 perintah dasar di linux
Praktikum os bab2 perintah dasar di linux
 
L I N U X
L I N U XL I N U X
L I N U X
 
Praktikum os babk3
Praktikum os babk3Praktikum os babk3
Praktikum os babk3
 
Praktikum Sistem Operasi Linux
Praktikum Sistem Operasi LinuxPraktikum Sistem Operasi Linux
Praktikum Sistem Operasi Linux
 
Basic PHP Syntax
Basic PHP SyntaxBasic PHP Syntax
Basic PHP Syntax
 
Praktikum 8
Praktikum 8Praktikum 8
Praktikum 8
 
Praktikum 2
Praktikum 2Praktikum 2
Praktikum 2
 
Fhs
FhsFhs
Fhs
 
Modul so praktikum
Modul so praktikumModul so praktikum
Modul so praktikum
 

Destacado

разработка пс коуч обзор к 2 октября 2013[1]
разработка пс коуч   обзор к 2 октября 2013[1]разработка пс коуч   обзор к 2 октября 2013[1]
разработка пс коуч обзор к 2 октября 2013[1]Andrey Korolikhin
 
Школа эффективного родителя как фактор успешной адаптации будущих первокласс...
Школа эффективного родителя как фактор  успешной адаптации будущих первокласс...Школа эффективного родителя как фактор  успешной адаптации будущих первокласс...
Школа эффективного родителя как фактор успешной адаптации будущих первокласс...Центр развития образования г.Самары
 
Sahana Camp Simulation
Sahana Camp SimulationSahana Camp Simulation
Sahana Camp SimulationAidIQ
 
фцб развитие инфраструктуры
фцб развитие инфраструктурыфцб развитие инфраструктуры
фцб развитие инфраструктурыsasalnikova
 
CTA (Call to action) tool for automatization
CTA (Call to action) tool for automatizationCTA (Call to action) tool for automatization
CTA (Call to action) tool for automatizationIryna Avrutova
 

Destacado (9)

разработка пс коуч обзор к 2 октября 2013[1]
разработка пс коуч   обзор к 2 октября 2013[1]разработка пс коуч   обзор к 2 октября 2013[1]
разработка пс коуч обзор к 2 октября 2013[1]
 
шв фев 2013
шв фев 2013шв фев 2013
шв фев 2013
 
Школа эффективного родителя как фактор успешной адаптации будущих первокласс...
Школа эффективного родителя как фактор  успешной адаптации будущих первокласс...Школа эффективного родителя как фактор  успешной адаптации будущих первокласс...
Школа эффективного родителя как фактор успешной адаптации будущих первокласс...
 
Sahana Camp Simulation
Sahana Camp SimulationSahana Camp Simulation
Sahana Camp Simulation
 
Sviridenko 2007
Sviridenko 2007Sviridenko 2007
Sviridenko 2007
 
Exeter city
Exeter cityExeter city
Exeter city
 
фцб развитие инфраструктуры
фцб развитие инфраструктурыфцб развитие инфраструктуры
фцб развитие инфраструктуры
 
Orlov 2009
Orlov 2009Orlov 2009
Orlov 2009
 
CTA (Call to action) tool for automatization
CTA (Call to action) tool for automatizationCTA (Call to action) tool for automatization
CTA (Call to action) tool for automatization
 

Similar a Shell Programming

Lapres so d_modul1_yuka
Lapres so d_modul1_yukaLapres so d_modul1_yuka
Lapres so d_modul1_yukaYuka Arjaka
 
Meeting 8-practice5 a-working with bash shell-b-modul
Meeting 8-practice5 a-working with bash shell-b-modulMeeting 8-practice5 a-working with bash shell-b-modul
Meeting 8-practice5 a-working with bash shell-b-modulSyaiful Ahdan
 
Pertemuan2 basic commands linux operating system-handout
Pertemuan2 basic commands linux operating system-handoutPertemuan2 basic commands linux operating system-handout
Pertemuan2 basic commands linux operating system-handoutSyaiful Ahdan
 
20150927 lab2 basiccommandlinux
20150927 lab2 basiccommandlinux20150927 lab2 basiccommandlinux
20150927 lab2 basiccommandlinuxWahyu W
 
Meeting 9 pemrograman shell - a
Meeting 9    pemrograman shell - a Meeting 9    pemrograman shell - a
Meeting 9 pemrograman shell - a Syaiful Ahdan
 
Modul praktikum sistem operasi
Modul praktikum sistem operasiModul praktikum sistem operasi
Modul praktikum sistem operasiHidayatullah Aldy
 
Linux meet-the-command-line-v0.01-modul-01-anatomi-perintah-linux
Linux meet-the-command-line-v0.01-modul-01-anatomi-perintah-linuxLinux meet-the-command-line-v0.01-modul-01-anatomi-perintah-linux
Linux meet-the-command-line-v0.01-modul-01-anatomi-perintah-linuxKurungsiku
 
Meeting7 working with bash shell - a-modul
Meeting7   working with bash shell - a-modul Meeting7   working with bash shell - a-modul
Meeting7 working with bash shell - a-modul Syaiful Ahdan
 
Praktikum Sistem Operasi Linux (2)
Praktikum Sistem Operasi Linux (2)Praktikum Sistem Operasi Linux (2)
Praktikum Sistem Operasi Linux (2)Mirza Afrizal
 
Meeting 3 - operasi input output-handout
Meeting 3 - operasi input output-handoutMeeting 3 - operasi input output-handout
Meeting 3 - operasi input output-handoutSyaiful Ahdan
 
Bab 5 linux shell
Bab 5 linux shellBab 5 linux shell
Bab 5 linux shellAde Tamin
 
20101119 perintah dasar_sistem_operasi_linux
20101119 perintah dasar_sistem_operasi_linux20101119 perintah dasar_sistem_operasi_linux
20101119 perintah dasar_sistem_operasi_linuxsetyarico
 
Lapres so d_modul2_yuka
Lapres so d_modul2_yukaLapres so d_modul2_yuka
Lapres so d_modul2_yukaYuka Arjaka
 

Similar a Shell Programming (20)

Lapres so d_modul1_yuka
Lapres so d_modul1_yukaLapres so d_modul1_yuka
Lapres so d_modul1_yuka
 
Meeting 8-practice5 a-working with bash shell-b-modul
Meeting 8-practice5 a-working with bash shell-b-modulMeeting 8-practice5 a-working with bash shell-b-modul
Meeting 8-practice5 a-working with bash shell-b-modul
 
Pertemuan2 basic commands linux operating system-handout
Pertemuan2 basic commands linux operating system-handoutPertemuan2 basic commands linux operating system-handout
Pertemuan2 basic commands linux operating system-handout
 
20150927 lab2 basiccommandlinux
20150927 lab2 basiccommandlinux20150927 lab2 basiccommandlinux
20150927 lab2 basiccommandlinux
 
Meeting 9 pemrograman shell - a
Meeting 9    pemrograman shell - a Meeting 9    pemrograman shell - a
Meeting 9 pemrograman shell - a
 
Modul praktikum sistem operasi
Modul praktikum sistem operasiModul praktikum sistem operasi
Modul praktikum sistem operasi
 
Linux meet-the-command-line-v0.01-modul-01-anatomi-perintah-linux
Linux meet-the-command-line-v0.01-modul-01-anatomi-perintah-linuxLinux meet-the-command-line-v0.01-modul-01-anatomi-perintah-linux
Linux meet-the-command-line-v0.01-modul-01-anatomi-perintah-linux
 
Bab 5 linux shell
Bab 5 linux shellBab 5 linux shell
Bab 5 linux shell
 
Modul SO : Proses
Modul SO : ProsesModul SO : Proses
Modul SO : Proses
 
Meeting7 working with bash shell - a-modul
Meeting7   working with bash shell - a-modul Meeting7   working with bash shell - a-modul
Meeting7 working with bash shell - a-modul
 
Praktikum 6A
Praktikum 6APraktikum 6A
Praktikum 6A
 
Praktikum Sistem Operasi Linux (2)
Praktikum Sistem Operasi Linux (2)Praktikum Sistem Operasi Linux (2)
Praktikum Sistem Operasi Linux (2)
 
Meeting 3 - operasi input output-handout
Meeting 3 - operasi input output-handoutMeeting 3 - operasi input output-handout
Meeting 3 - operasi input output-handout
 
01 tk2123 - pemrograman shell-2
01   tk2123 - pemrograman shell-201   tk2123 - pemrograman shell-2
01 tk2123 - pemrograman shell-2
 
apaan Linux
apaan Linuxapaan Linux
apaan Linux
 
Bab 5 linux shell
Bab 5 linux shellBab 5 linux shell
Bab 5 linux shell
 
Bab 7 perulangan_2
Bab 7 perulangan_2Bab 7 perulangan_2
Bab 7 perulangan_2
 
20101119 perintah dasar_sistem_operasi_linux
20101119 perintah dasar_sistem_operasi_linux20101119 perintah dasar_sistem_operasi_linux
20101119 perintah dasar_sistem_operasi_linux
 
Lapres so d_modul2_yuka
Lapres so d_modul2_yukaLapres so d_modul2_yuka
Lapres so d_modul2_yuka
 
Materi 1
Materi 1Materi 1
Materi 1
 

Más de wawankoerniawan (20)

Print screen
Print screenPrint screen
Print screen
 
Materi 6
Materi 6Materi 6
Materi 6
 
Materi 6
Materi 6Materi 6
Materi 6
 
Materi 12
Materi 12Materi 12
Materi 12
 
Materi 10
Materi 10Materi 10
Materi 10
 
Materi 9
Materi 9Materi 9
Materi 9
 
Materi 8
Materi 8Materi 8
Materi 8
 
Materi 7
Materi 7Materi 7
Materi 7
 
Materi 5
Materi 5Materi 5
Materi 5
 
Materi 4
Materi 4Materi 4
Materi 4
 
Materi 3
Materi 3Materi 3
Materi 3
 
Materi 2
Materi 2Materi 2
Materi 2
 
Materi 1
Materi 1Materi 1
Materi 1
 
Materi 11
Materi 11Materi 11
Materi 11
 
Materi 4
Materi 4Materi 4
Materi 4
 
Materi 10
Materi 10Materi 10
Materi 10
 
Materi 10
Materi 10Materi 10
Materi 10
 
Materi 12
Materi 12Materi 12
Materi 12
 
Materi 11
Materi 11Materi 11
Materi 11
 
Materi 9
Materi 9Materi 9
Materi 9
 

Shell Programming

  • 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.
  • 8. Pemrograman Shell • Fitur-fitur programming dari UNIX shell: Shell variables Operators Logic structures
  • 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)
  • 10. Pemrograman Shell • Fitur-fitur programming dari UNIX shell: Shell variables Operators Logic structures
  • 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
  • 13. Variables (Cont’d) Untuk melihat daftar dari environment variables: $ printenv atau: $ printenv | more
  • 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
  • 18. Pemrograman Shell • Fitur-fitur programming dari UNIX shell: Shell variables Operators Logic structures
  • 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
  • 22. Shell Programming • Fitur-fitur programming dari UNIX shell: Shell variables Operators Logic structures
  • 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