• Beranda
  • Autosultan
  • Bitcoin
  • Dollar
  • Linux
  • LOKER
  • Printer
  • Sofware
  • sosial
  • TISniper
  • Virus
  • Windows

T.I Sniper

#Expert Advisor for MetaTrader 4 #Expert Advisor for MetaTrader 5 #youtube #google #free dollar business every day #Lowongan #Pekerjaan #Loker #forex #trading Autopilot #mining crypto #Update #Tutorial #Komputer Perbaikan, #Email #Facebook , #whatsapp ,#instagram #telegram ,#Internet ,#Motivasi , #Crypto , #AirDrop, #Bitcoin, #Ethereum, #Binance coin, #Cardano, #Degocoin, #Litecoin #Indodax, #Coinbase, #Nexo Dan Mata Uang Digital Lain , #Website, Perbaikan #Server #Domain , #Hosting, #Whm

    • Beranda
    • Contact Forum
    • Coffee JKs88
    • Tentang Kami
    • Parse Code Html
    • Text Terbalik
    • Privacy Policy

    Ikuti Kami!

    Follow Akun Instagram Kami Dapatkan Notifikasi Terbaru!
    Ikuti Kami di Facebok! Untuk mendapatkan notifikasi terbaru.

    Postingan Populer

    Backlink dengan Google Dork Seo

    Dork Seo
    Januari 01, 2016
    0

    Cara Dapat Backlink dengan Google Dork

    Dork Seo
    Februari 13, 2016
    0

    Download File ISO Windows 11 Dan Bootable USB Rufus

    Sofware Windows
    Desember 02, 2021
    0

    Cara Dapat Backlink Edu Gratis

    Seo
    Februari 13, 2016
    0

    SBS opening Fix Autosultan

    Autosultan zonamotivasi
    Januari 25, 2022
    0
    Author
    chmood
    Tautan disalin ke papan klip!
    Share Posts "TUTORIAL MINI - SHELL SCRIPT"
  • Salin link
  • Simpan Ke Daftar Bacaan
  • Bagikan ke Facebook
  • Bagikan ke Twitter
  • Bagikan ke Pinterest
  • Bagikan ke Telegram
  • Bagikan ke Whatsapp
  • Bagikan ke Tumblr
  • Bagikan ke Line
  • Bagikan ke Email
  • HomeBackdoorTUTORIAL MINI - SHELL SCRIPT
    TUTORIAL MINI - SHELL SCRIPT

    TUTORIAL MINI - SHELL SCRIPT

    Simpan Postingan
    ================================
    TUTORIAL MINI - SHELL SCRIPT
    ================================


    1. Shell Script
       1.0 Apa Itu Shell Script?
       1.1 Variabel
       1.2 Command Line & Argument
       1.3 Perhitungan Aritmatik
       1.4 User input
       1.5 Piping
       1.6 Redirection
       1.7 Fungsi
      
    2. Percabangan
       2.0 Percabangan dalam shell script
       2.1 if...then...fi
       2.2 if...then...else...fi
       2.3 if...then...elif...else...if
       2.4 nested if
       2.5 case...in...esac
       2.6 Menangkap error status

    3. Perulangan
       3.0 Perulangan dalam shell script
       3.1 for...do...done
       3.2 for...in...do...done
       3.3 while...do...done
       3.4 Perulangan bersarang
      
    4. Soal-soal Latihan
       4.1 Anda ingin membersihkan Cache Firefox jika telah mencapai 5MB
           Tips: gunakan perintah `du` untuk mengecek ukuran folder
       4.2 Anda ingin membuat script untuk melakukan backup otomatis log file server
           apache setiap tengah malam lalu otomatis membersihkannya
       4.3 Anda ingin membuat membuat tampilan seperti berikut menggunakan looping,
           4.3.1
          
           1          1              *           * * * * *
           22         12            * *          * * * *
           333        123          * * *         * * *
           4444       1234        * * * *        * *
           55555      12345      * * * * *       *
          
       4.4 Anda ingin membuat shell script yang fungsinya mirip dengan program `ps`
           yaitu untuk menampilkan proses dan juga informasi system
       4.5 Anda ingin membuat game tebak angka sederhana dimana jika dijalankan
           outputnya akan seperti berikut:
          
           ***********************************
           SELAMAT DATANG DI GAME TEBAK ANGKA
           ***********************************
           PERATURAN GAME:
           1. Angka diantara 10 - 50
           2. Angka adalah genap
           3. Maksimal percobaan adalah 5 kali
          
           Masukkan Nama: SnipKOM
          
           Masukkan angka: 20
           SnipKOM, angka yang anda masukkan terlalu kecil (percobaan ke-1)
          
           Masukkan angka: 34
           SnipKOM, angka yang anda masukkan terlalu besar (percobaan ke-2)
          
           Masukkan angka: 30
           SnipKOM, angka yang anda masukkan terlalu besar (percobaan ke-3)
          
           Masukkan angka: 28
           SnipKOM, angka yang anda masukkan terlalu besar (percobaan ke-4)
          
           Masukkan angka: 22
           ------------------------ GAME OVER ----------------------------
           JAWABAN YANG BENAR ADALAH : 24
           Apakah anda ingin coba lagi (y/t) ? y
           ---------------------------------------------------------------
          
           Masukkan angka: 44
           SnipKOM, angka yang anda masukkan terlalu kecil (percobaan ke-1)
          
           Masukkan angka: 48
           ------------- SELAMAT TEBAKAN ANDA BENAR ----------------------
           Anda berhasil menebak dalam 2 kali percobaan.
           Apakah anda ingin coba lagi (y/t) ? t
           ---------------------------------------------------------------
          
          
           Jawaban didapat secara random antara 10 - 50 dan harus genap. Untuk
           mendapatan random number pada shell script dapat digunakan beberapa cara
           diantaranya:
          
           1. Menggunakan magic variable $RANDOM
              misal untuk menghasilkan angka range 1 - 10 maka:
              echo $[ ($RANDOM % 10) + 1 ]

           2. Langsung berkomunikasi dengan file /dev/random atau /dev/urandom. File
              ini isinya selalu berubah sehingga dengan menggunakan perintah `cksum`
              kita akan mendapatkan angka yang acak, contoh:
              expr `dd if=/dev/urandom count=1 2> /dev/null | cksum | \
              cut -d" " -f1` % 10 + 1
          
    --------------------------------------------------------------------------------

    ------------------------
    1.0 APA ITU SHELL SCRIPT
    ------------------------
       Dalam lingkungan unix, kata 'shell' mengacu pada semua program yang dapat
       dijalankan pada command line. Jadi secara sederhana shell script merupakan
       kumpulan perintah yang disimpan pada suatu file. Extensi umum yang digunakan
       untuk shell script adalah '.sh', sebenarnya hal ini tidak mutlak karena
       pada dasarnya unix mengabaikan extensi file.
      
       Shell juga dapat mengacu pada program yang menangani command line itu
       sendiri dalam sistem operasi UNIX program tersebut adalah Bourne Shell
       (1978 - Steve Bourne) disingkat sh. Dalam sistem operasi GNU/Linux shell yang
       menjadi standar adalah Bourne Again Shell(bash). Bash merupakan shell yang
       kompatibel dengan sh dan memiliki lebih banyak fitur.
      
       Jika anda ingin menguasai shell script tentu anda harus tahu dan hafal
       sedikit banyak perintah dasar command line, seperti mengkopi file(cp),
       merename file(mv), mencetak string (echo), melihat file(cat), dan beberapa
       perintah dasar lainnya.
      
       Shell script juga menyediakan beberapa fitur yang tersedia pada bahasa
       pemrograman tingkat tinggi seperti variabel, percabangan dan perulangan.
       Berikut ini adalah contoh sederhana penggunakan shell script:
      
       Snip@Akom.edu:~$ nano hello.sh
       #!/bin/sh
       echo 'HELLO WORLD'
      
       Untuk menjalankan ada dua cara, pertama melalui program shell itu sendiri
      
       Snip@Akom.edu:~$ sh hello.sh
      
       Kedua adalah mengeksekusinya secara independen, untuk melakukan hal tersebut
       anda harus memberi permission 'execute' pada file.
      
       Snip@Akom.edu:~$ chmod +x hello.sh
       Snip@Akom.edu:~$ ./hello.sh
       HELLO WORLD
      
       Baris pertama #!/bin/sh adalah MUTLAK diperlukan dan HARUS diletakkan pada
       BARIS PERTAMA agar file yang anda buat dikenali sistem sebagai shell script.
       Tanda '#!' sering disebut 'shebang' operator. Tanda tersebut menandakan
       bahwa file tersebut adalah shell script. Sisanya misal '/bin/sh' adalah
       lokasi file binari atau program. Dalam contoh kita menggunakan program
       bash '/bin/sh' atau '/bin/bash'.
      
       Tanda # jika tidak terletak pada baris dan kolom paling awal akan dianggap
       sebagai komentar oleh shell.
      
    ------------
    1.1 Variabel
    ------------
       Pemberian variabel pada shell script bersifat 'dynamic typing' karena
       shell script tidak mengenal adanya tipe data. Pada shell script dikenal
       dua istilah variabel yaitu SYSTEM VARIABLE(SV) dan USER DEFINED VARIABLE
       (UDV). SV adalah kumpulan variabel yang telah dideklarasikan secara otomatis
       oleh shell, sedangkan UDV adalah variabel yang kita buat sendiri. Contoh dari
       variabel SV adalah HOME, SHELL, RANDOM, OSTYPE, dan masih banyak yang lain.
      
       Dalam membuat variabel ada beberapa aturan yang harus dipenuhi agar variabel
       tersebut dianggap valid oleh shell, syntax untuk penamaan variabel adalah:
      
       nama_variabel=NILAI
      
       Perhatikan bahwa tidak ada spasi antara nama_variabel dengan tanda '=' juga
       dengan NILAI. Ini adalah suatu KEHARUSAN. Berikut adalah beberapa aturan
       tentang penamaan variabel:
      
       1. Variabel HARUS diawali ABJAD atau _ (tidak dapat diawali angka)
       2. Variabel dapat terdiri dari karakter alphanumeric dan _
       3. Variabel bersifat CaSe SeNsItIvE
       4. Jika isi variabel mengandung spasi sebaiknya apit dengan tanda petik (')
          atau (").
       5. Gunakan escape character (\) untuk karakter non-literal
          seperti (\', \$, \?, dll)
      
       Untuk mencetak nilai dari suatu variabel digunakan tanda dollar ($) didepan
       nama variabel, contoh:
      
       Snip@Akom.edu:~$ a='Hello '
       Snip@Akom.edu:~$ b='World!'
       Snip@Akom.edu:~$ echo $a$b
       Hello World!
       Snip@Akom.edu:~$ echo ${a}${b}
       Hello World!
      
       Cara yang terakhir adalah cara yang disarankan untuk menghindari kesalahan
       dalam melakukan concat string.
      
       Jika anda ingin menyimpan output dari suatu perintah kedalam suatu variabel
       gunakan tanda backtick (`). Contoh, kita akan melihat isi direktori home
       lalu menyimpannya dalam variabel isi_home.
      
       Snip@Akom.edu:~$ isi_home=`ls /home`
       Snip@Akom.ecu:~$ echo $isi_home
      
       Dalam shel juga terdapat SPECIAL VARIABEL untuk mendapatkan exit status dari
       suatu program. Pada UNIX setiap program dinyatakan selesai TANPA error
       apabila exit statusnya SAMA DENGAN 0. Selain itu maka program tersebut
       selesai tapi dengan error. Variabel tersebut adalah "$?".
      
       Snip@Akom.edu:~$ ls /home
       Snip@Akom.edu:~$ echo $?
       0
       Snip@Akom.edu:~$ ls /file/ngawur
       Snip@Akom.edu:~$ echo $?
       2
      
       Angka 2(TIDAK SAMA DENGAN 0) menunjukkan bahwa program ls keluar dengan
       status terjadi error. Penggunaan exit sangat penting saat kita membuat
       shell script yang kompleks, dimana didalamnya kita banyak menggunakan
       program lain.
      
    ------------------------------
    1.2 Command Line dan Argument
    ------------------------------
       Ketika berbicara shell script kita pasti berhubungan dengan command line.
       Apabila berbicara tentang command line pasti berhubungan dengan argument.
       Apaliba berbicara tentang argument.....cukup....cukup.... nanti malah sampai
       sejarah kerajaan majapahit nantinya :)
      
       Perintah-perintah command line umumnya memerlukan minimal satu buah argumen
       agar dapat mengerjakan tugasnya secara optimal. Apa itu argument? secara
       sederhana argumen adalah text/character yang ditempatkan setelah nama program
       dengan pemisah minimal satu spasi.
      
       Contoh berikut mengilustrasikan pemberian dua argument pada perinta copy file
       `cp`. Perintah cp memerlukan dua argument yaitu 1)lokasi file awal
       2)lokasi file tujuan
      
       Snip@Akom.edu:~$ cp /foo/bar /tmp/bar
                                ^       ^
                          argument-1  argument-2
      
       Pada sistem Linux dikenal dua istilah argument short style(UNIX style) dan
       long style(GNU Style). Hampir setiap program command line pada linux
       menyediakan dua opsi tersebut saat memberikan argument. Penulisan argument
       UNIX style biasanya hanya terdiri dari satu huruf contoh '-l' pada perintah
       `ls`.
      
       Snip@Akom.edu:~$ ls -l
      
       Sedangkan GNU style umumnya terdiri dari minimal sebuah kata contoh
       '--all' pada perintah `ls`.
      
       Snip@Akom.edu:~$ ls --all
      
       Untuk membaca argument dalam shell script digunakan special variabel yaitu
       $0, $1, $2,...$9. Variabel $0 adalah nama program itu sendiri.
      
       CATATAN:
       Untuk mengetahui jumlah argument yang diinputkan user gunakan variabel $#,
       sedangkan untuk mendapatkan seluruh argument gunakan variabel $*.
      
       LATIHAN:
       Buat sebuah shell script untuk menampilkan nama user, nama tersebut
       diinput melalui argument ke-1
      
       JAWAB:
       Snip@Akom.edu:~$ nano nama.sh
       #!/bin/sh
       nama=$1
       echo 'Halo '$nama', selamat datang!'
      
       Snip@Akom.edu:~$ chmod +x nama.sh
       Snip@Akom.edu:~$ ./nama.sh BB
       Halo Akom, selamat datang!
       Snip@Akom.edu:~$ ./nama.sh  BB ACEH'
       Halo Akom, selamat datang!
       Snip@Akom.edu:~$ ./nama.sh ' BB ACEH'
       Halo Cyber_Sniper, selamat datang!
      
       CATATAN:
       Untuk menyimpan file pada nano Tekan CTRL-O lalu jika ingin keluar tekan
       CTRL-X.

    --------------------------
    1.3 Perhitungan Aritmatik
    --------------------------
       Untuk melakukan perhitungan aritmatik, shell tidak memiliki kemampuan
       built-in, tetapi meminta bantuan program lain yaitu `expr`. Program expr
       berfungsi untuk mengevaluasi suatu expresi baik itu perbandingan string
       atau operasi aritmatik sederhana.
      
       Operator aritmatik yang disediakan expr antaran lain:
       +-----------+-----------------------------------------------------------+
       | Operator  | KETERANGAN                                                |
       +-----------+-----------------------------------------------------------+
       |     +     | Operator Penjumlahan contoh: expr 1 + 1                   |
       +-----------+-----------------------------------------------------------+
       |     -     | Operator Pengurangan contoh: expr 10 - 9                  |
       +-----------+-----------------------------------------------------------+
       |     *     | Operator Perkalian contoh: expr 10 \* 10                  |
       +-----------+-----------------------------------------------------------+
       |     /     | Operator Pembagian contoh: expr 10 / 2                    |
       +-----------+-----------------------------------------------------------+
       |     %     | Operator Modulus contoh: expr 15 % 3                      |
       +-----------+-----------------------------------------------------------+
      
       Selain digunakan untuk perhitungan aritmatik, perintah `expr` juga cukup
       handal untuk melakukan manipulasi string, untuk lebih jelas silahkan lihat
       halaman manual dari expr dengan mengetikkan `man expr`.
      
       LATIHAN:
       Buatlah sebuah shell script untuk menghitung nilai dari argument-1 dikali
       argument-2 ditambah argument-3!
      
       JAWABAN:
       Secara matematis perhitungannya adalah
      
       (argument-1 + argument-2) + argument-3.
      
       Tidak seperti bahasa tingkat tinggi, pada shell script untuk memberi
       prioritas pada suatu perhitungan kita menggunakan tanda $[ ... ]. Jadi
       perhitungannya menjadi
      
       $[ argument-1 + argument-3 ] + argument-3
      
       Keuntungan lain ketika kita menggunakan tanda $[...] adalah kita tidak perlu
       melakukan escaping character pada tanda perkalian(*). Berikut ini adalah
       shell scriptnya.
      
       Snip@Akom.edu:~$ nano hitung.sh
       #!/bin/sh

       bil1=$1
       bil2=$2
       bil3=$3

       echo -n "HASIL DARI $bil1 * $bil2 + $bil3 = "
       echo `expr $[ $bil1 * $bil2 ] + $bil3`
       Snip@Akom.edu:~$ chmod +x hitung.sh
       Snip@Akom.edu:~$ ./hitung.sh 10 10 10
       HASIL DARI 10 * 10 + 10 = 110
      
    ---------------
    1.4 User Input
    ---------------
       Selain melalui argument pada command line, cara lain untuk mendapatkan input
       dari user adalah melalui STANDARD INPUT (STDIN). Dimana user langsung
       mengetikkan isi dari suatu nilai yang program inginkan.
      
       Untuk mendapatkan input dari user dapat digunakan perintah `read`. Perintah
       read tidak begitu berguna jika kita tidak menyimpan hasil inputan tersebut
       kedalam sebuah variabel. Untuk menyimpan hasil inputan kita harus memberi
       satu argument pada perintah read. Argument inilah yang akan menyimpan nilai
       yang diinputkan. Contoh,
      
       Snip@Akom.edu:~$ read a
       10
       Snip@Akom.edu:~$ read b
       5
       Snip@Akom.edu:~$ expr $a \* $b
       50
      
       LATIHAN:
       Sama dengan latihan sebelumnya, hanya saja kali ini gunakan perintah read
       untuk membaca setiap bilangan yang diinputkan user.
      
       JAWABAN:
       Snip@Akom.edu:~$ nano hitung2.sh
       #!/bin/sh

       # deklarasikan variabel dengan nilai NULL
       bil1=
       bil2=
       bil3=

       echo -n 'Masukkan bilangan-1: '
       read bil1
       echo -n 'Masukkan bilangan-2: '
       read bil2
       echo -n 'Masukkan bilangan-3: '
       read bil3

       echo ''
       echo -n "Hasil dari $bil1 * $bil2 + $bil3 = "
       echo `expr $[ $bil1 * $bil2 ] + $bil3`
       Snip@Akom.edu:~$ chmod +x hitung2.sh
       Snip@Akom.edu:~$ ./hitung2
       Masukkan bilangan-1: 10
       Masukkan bilangan-2: 10
       Masukkan bilangan-3: 10

       Hasil dari 10 * 10 + 10 = 110
      
    ----------  
    1.5 Piping
    ----------
       Piping merupakan penggabungan dua atau lebih perintah dimana output dari
       perintah sebelumnya digunakan sebagai input untuk perintah selanjutnya.
       Simbol yang digunakan untuk membatasi perintah yang satu dengan yang lain
       adalah tanda pipe "|". Berikut adalah beberapa contoh sederhana penggunaan
       piping pada command line.
      
       Snip@Akom.edu:~$ cat /etc/passwd | wc -l
       Snip@Akom.edu:~$ cat /etc/passwd | sort -r
       Snip@Akom.edu:~$ cat /etc/passwd | grep "/bin/sh/" | wc -l

    ---------------
    1.6 Redirection
    ---------------
       Secara umum jika kita ingin mengambil inputan maka kita mengambil dari
       STANDARD INPUT (STDIN) yaitu keyboard. Sedangkan hasil output program yang
       tercetak di layar monitor kita disebut STANDARD OUTPUT (STDOUT). Hampir sama
       dengan STDOUT, error yang dihasilkan program juga ditampilkan lewat monitor
       biasa disebut STANDARD ERROR (STDERR). Setiap standard mempunyai kode file
       descriptor sendiri-sendiri diantaranya:
      
       - STDIN => File Descriptor: 0
       - STDOUT => File Descriptor: 1
       - STDERR => File Descriptor: 2
      
       Dengan mengetahui file descriptor tersebut kita dapat melakukan redirection
       (pengalihan), misal dari dari STDOUT menjadi STDERR atau sebaliknya.
       Terdapat tiga simbol untuk melakukan redirection diantarnya:
      
       1.
       Simbol: ">"
       Keterangan: Simbol tersebut akan meredirect output ke dalam suatu file. Jika
                   file tersebut belum ada maka akan buat secara otomatis, jika
                   file sudah ada ada maka isinya akan di-overwrite/ditimpa.
      
       2.
       Simbol: ">>"
       Keterangan: Hampir sama dengan ">" hanya saja jika file sudah ada, maka file
                   isi tersebut tidak dioverwrite tetapi ditambah.
      
       3.
       Simbol: "<"
       Keterangan: Simbol "<" artinya input tidak diambil dari STDIN melainkan dari
                   sebuah file.
      
       Sebagai contoh sederhana, ketika anda mengetikkan perintah `ls /nama/dir`
       maka secara default program ls akan menampilkan output ke STDOUT yaitu
       layar monitor. Jika kita ingin meredirect output yang dihasilkan kedalam
       sebuah file maka kita dapat menggunakan simbol ">" atau ">>". Intinya segala
       STDOUT dapat dilakukan redirect.
      
       Snip@Akom.edu:~$ echo 'DAFTAR ISI FOLDER LUG' > /tmp/data.txt
       Snip@Akom.edu:~$ ls /home/luAkom >> /tmp/data.txt
      
       Untuk contoh "<" kita akan menggunakan program tr, program ini dapat kita
       gunakan untuk manipulasi teks. Input yang akan kita berikan ke tr adalah
       dari sebuah file, nantinya teks yang ada pada file tersebut akan di-UPPER
       CASE semua.
      
       Snip@Akom.edu:~$ echo 'SMK ACEH UTARA' > /tmp/Snip@Akom.txt
       Snip@Akom.edu:~$ tr "[a-z]" "[A-Z]" < /tmp/Snip@Akom.txt
       Snip@Akom
      
       Selain meredirect ke file kita juga dapat melakukan redirect ke file
       descriptor lain. Misal dari STDOUT ke STDERR atau sebaliknya.
      
       Snip@Akom.edu:~$ rm /file/ngawur 2>&1
       Snip@Akom.edu:~$ ls / 1>&2
      
    -----------
    1.7 FUNGSI
    -----------
       Hampir sama dengan bahasa pemrograman tingkat tinggi, pada shell script juga
       dikenal istilah fungsi. Dimana dengan adanya fungsi kita dapat membagi
       kode kita ke dalam sub-sub yang lebih kecil. Hal ini sangat berguna jika kita
       membangun sebuah program shell script yang cukup kompleks. Syntax penggunaan
       fungsi pada shell script adalah:
      
       function nama-fungsi()
       {
          perintah
          ...
          ...
          return
       }

       LATIHAN:
       Buatlah shell script untuk mencetak banner seperti output berikut:
      
       Snip@Akom.edu:~$ ./fungsi.sh
       ==============================
        SELAMAT DATANG DI LUG-AKOM
       ==============================
       HARI INI: Rabu, 14-05-2008
      
       Tulisan "SELAMAT blabla..." diletakkan dalam fungsi tersendiri, begitu pula
       fungsi untuk mencetak tanggal. Fungsi mencetak tanggal nantinya akan
       dipanggil didalam fungsi yang mencetak tulisan "SELAMAT...".
      
       JAWAB:
       Snip@Akom.edu:~$ nano fungsi.sh
       #!/bin/sh

       function indo_date() {
               echo `date +"%A, %d-%m-%Y"`
               return
       }

       function welcome() {
               echo "=============================="
               echo " SELAMAT DATANG DI LUG-AKOM"
               echo "=============================="
               echo -n "HARI INI: "
               indo_date
               return
       }

       welcome
       Snip@Akom.edu:~$ chmod +x fungsi.sh
      
       Apakah fungsi pada shell script juga menerima parameter? YA tapi dengan
       sedikit "nyeleneh". Kenapa? jika pada bahasa pemrograman umumnya parameter
       diletakkan diantara tanda (), tidak demikian dengan shell script. Cara
       pengambilan parameter pada shell script sama dengan pengambilan argument
       pada program shell script itu sendiri. Jadi kita dapat menggunakan variabel
       $*, $#, $0, $1, dan seterusnya.
      
       Dibawah ini adalah contoh pembuatan fungsi untuk mengubah text menjadi
       UPPER-CASE.
      
       Snip@Akom.edu:~$ nano fungsi2.sh
       #!/bin/sh
       function toUpperCase() {
               teks=$*
               echo $teks | tr "[a-z]" "[A-Z]"
               return
       }

       echo -n "Masukkan teks(lowercase): "
       read foo
       toUpperCase $foo
       Snip@Akom.edu:~$ chmod +x fungsi2.sh
       Snip@Akom.edu:~$ ./fungsi2.sh
       Masukkan teks(lowercase): ini lower case
       INI LOWER CASE

       Pada contoh diatas kita menggunakan variabel $* untuk mengambil parameter
       bukan $1 atau $2 dkk karena yang akan diinputkan user kemungkinan mengandung
       dua kata atau lebih. Jadi jika kita menggunakan variabel $1 maka yang terbaca
       hanya kata pertama. Untuk itu kita gunakan variabel $* yang akan membaca
       semua parameter.
      

    ---------------
    2.0 Percabangan
    ---------------
       Dengan menggunakan percabangan/branching maka kita dapat mengontrol alur
       dari shell script yang kita buat. Hal ini memungkinkan kita untuk menulis
       program yang sangat kompleks pada shell script. Syntax penggunaan percabangan
       pada shell script adalah:
      
       if kondisi
       then
          ...
          ...
       fi
       -----------
       if kondisi
       then
          ...
          ...
       else
          ...
          ...
       fi
       -----------
       if kondisi1
       then
          ...
          ...
       elif kondisi1
          ...
          ...
       elif kondisi-n
          ...
          ...
       else
          ...
          ...
       fi
       --------------
       case $variabel in
          pattern1) perintah
                   ...
                   perintah;;
          pattern1) perintah
                   ...
                   perintah;;
          *) perintah
             ...
             perintah;;
       esac
      
       Untuk melakukan perbandingan kondisi pada data kita dapat menggunakan
       perintah `test`(man test) atau meletakkannya dalam blok [ ].
      
       Berikut ini adalah operator yang dapat digunakan untuk membandingkan data
       NUMERIK:
      
       +------------+-----------------------------------+
       | OPERATOR   | KETERANGAN                        |
       +------------+-----------------------------------+
       |    -eq     | SAMA DENGAN (=)                   |
       +------------+-----------------------------------+
       |    -ne     | TIDAK SAMA DENGAN (!=)            |
       +------------+-----------------------------------+
       |    -gt     | LEBIH BESAR (>)                   |
       +------------+-----------------------------------+
       |    -ge     | LEBIH BESAR ATAU SAMA DENGAN (>=) |
       +------------+-----------------------------------+
       |    -lt     | KURANG DARI (<)                   |
       +------------+-----------------------------------+
       |    -le     | KURANG DARI ATAU SAMA DENGAN (<=) |
       +------------+-----------------------------------+
      
    -------------------
    2.1 if...then...fi
    ------------------
      
       Snip@Akom.edu:~$ nano if-then-fi.sh
       #!/bin/sh
      
       num_arg=$#
       bil1=$1
       bil2=$2

       function help() {
           echo 'Penggunaan: '
           echo "$0 bil1 bil2"
           echo ''
           echo Dimana bil1 dan bil2 harus angka genap.
           return
       }

       function cek_arg() {
           if test $num_arg -lt 2
           then
               help
               exit 1    # keluar dengan exit status 1
           fi
       
           if [ `expr $bil1 % 2` -ne 0 ] ; then
               help
               exit 1
           fi
       
           if [ `expr $bil2 % 2` -ne 0 ]
           then
               help
               exit 1
           fi
           return
       }

       cek_arg
       echo 'Argument anda adalah '$bil1' dan '$bil2
       exit 0
       Snip@Akom.edu:~$ chmod +x if-then-fi.sh
       Snip@Akom.edu:~$ ./if-then-fi.sh
       Penggunaan:
       ./if-then-fi.sh bil1 bil2

       Dimana bil1 dan bil2 harus angka genap.
       Snip@Akom.edu:~$ echo $?
       1
       Snip@Akom.edu:~$ ./if-then-fi.sh 2 4
       Argument anda adalah 2 dan 4
       Snip@Akom.edu:~$ echo $?
       0
      
       Perintah exit pada shell script dapat digunakan untuk keluar langsung dari
       program. Pada contoh diatas, jika terdapat kesalahan kita keluar dengan exit
       status 1( bukan 0 ) artinya program selesai tapi dengan error. Error status
       tidak harus 1 tapi bisa sembarang angka asal BUKAN 0.

    -------------------------
    2.2 if...then...else...fi
    -------------------------
       Statement pada blok else akan dieksekusi jika kondisi pada pada blok if
       bernilai false.
      
       Snip@Akom.edu:~$ nano if-else.sh
       #!/bin/sh
      
       if test $1 -ge 0
       then
          echo "Argument bernilai positif"
       else
          echo "Argument bernilai negatif"
       fi
       Snip@Akom.edu:~$ chmod +x if-else.sh
       Snip@Akom.edu:~$ ./if-else 10
       Argument bernilai positif
       Snip@Akom.edu:~$ ./if-else -2
       Argument bernilai negatif

    --------------------------------
    2.3 if...then...elif...else...fi
    --------------------------------
       Statement elif digunakan jika kita ingin memilih lebih dari dua kondisi.
      
       Snip@Akom.edu:~$ nano if-elif.sh
       #!/bin/sh
       pilih=
       teks="Sistem operasi pilihan anda adalah "

       echo "Pilih Sistem Operasi Anda: "
       echo "1. Linux"
       echo "2. Mac OS"
       echo "3. FreeBSD"
       echo "4. Lainnya"
       echo ""

       echo -n "Masukkan pilihan: "
       read pilih

       if [ $pilih = "1" ] ; then
           echo "${teks}Linux"
       elif [ $pilih = "2" ] ; then
           echo "${teks}Mac OS"
       elif [ $pilih = "3" ] ; then
           echo "${teks}FreeBSD"
       else
           echo "Anda memilih sistem operasi lain"
       fi
       Snip@Akom.edu:~$ chmod +x if-elif.sh
       Snip@Akom.edu:~$ ./if-elif.sh
       Pilih Sistem Operasi Anda:
       1. Linux
       2. Mac OS
       3. FreeBSD
       4. Lainnya

       Masukkan pilihan: 3
       Sistem operasi pilihan anda adalah FreeBSD

    -------------
    2.5 Nested If
    -------------
       Pada shell script anda juga dapat meletakkan blok if didalam if atau istilah
       "kerennya" nested if. Berikut adalah contoh sederhana penggunaannya.
      
       Snip@Akom.edu:~$ nano nested-if.sh
       #!/bin/bash

       bil=$1
       if [ `expr $bil % 2` -eq 0 ] ; then
           if [ $bil -ge 0 ] ; then
               echo "Angka yang anda masukkan genap dan >= 0"
           else
               echo "Angka yang anda masukkan genap dan < 0"
           fi
       else
           if [ $bil -ge 0 ] ; then
               echo "Angka yang anda masukkan ganjil dan >= 0"
           else
               echo "Angka yang anda masukkan ganjil dan < 0"
           fi
       fi
       Snip@Akom.edu:~$ sh nested-if.sh 10
       Angka yang anda masukkan genap dan >= 0
       Snip@Akom.edu:~$ sh nested-if.sh -5
       Angka yang anda masukkan ganjil dan < 0

    --------------------
    2.6 case...in...esac
    --------------------
       Perintah case hampir sama dengan if-then-elif-else-fi karena dapat memilih
       dari banyak kondisi. Sebagian orang lebih suka menggunakan case...esac
       dibanding multi level-if karena lebih mudah dibaca.

       Pada contoh dibawah ini adalah modifikasi dari contoh if-then-elif-else-fi
       yang pernah dibahas sebelumnya menggunakan case...in...esac.
      
       Snip@Akom.edu:~$ nano case.sh
       #!/bin/sh
       pilih=
       teks="Sistem operasi pilihan anda adalah "

       echo "Pilih Sistem Operasi Anda: "
       echo "1. Linux"
       echo "2. Mac OS"
       echo "3. FreeBSD"
       echo "4. Lainnya"
       echo ""

       echo -n "Masukkan pilihan: "
       read pilih

       case $pilih in
           "1") echo "${teks}Linux";;
           "2") echo "${teks}Mac OS";;
           "3") echo "${teks}FreeBSD";;
           *)    echo "Anda memilih sistem operasi lain";;
       esac
       Snip@Akom.edu:~$ sh case.sh
       Pilih Sistem Operasi Anda:
       1. Linux
       2. Mac OS
       3. FreeBSD
       4. Lainnya

       Masukkan pilihan: 1
       Sistem operasi pilihan anda adalah Linux

    --------------------------
    2.7 Menangkap Error Status
    --------------------------
       Seperti yang pernah dijelaskan sebelumnya bahwa untuk melihat error status
       dari suatu perintah kita gunakan special variable "$?". Error status ini
       dapat kita gunakan untuk melihat apakah perintah yang kita jalankan berjalan
       tanpa error atau tidak. Error status terdiri dari dua flag yaitu:
      
       +-----------+-----------------+
       | NO. ERROR | STATUS PROGRAM  |
       +-----------+-----------------+
       |     0     | OK              |
       +-----------+-----------------+
       |    !=0    | TERJADI ERROR   |
       +-----------+-----------------+
      
       NOTE: != artinya TIDAK SAMA DENGAN
      
       Setelah anda mengetahui bagaimana menggunakan percabangan pada shell script
       maka kita dapat menggunakanya untuk menangkap error status yang dihasilkan
       oleh suatu program.
      
       Snip@Akom.edu:~$ nano error-status.sh
       #!/bin/sh

       perintah=`rm /file/ngawur 2>/dev/null`
       if [ $? -eq 0 ] ; then
           echo "PERINTAH SUKSES, EXIT STATUS: $?"
       else
           echo "PERINTAH GAGAL, EXIT STATUS: $?"
       fi

       ls / 1>/dev/null
       if [ $? -eq 0 ] ; then
           echo "PERINTAH SUKSES, EXIT STATUS: $?"
       else
           echo "PERINTAH SUKSES, EXIT STATUS: $?"
       fi
       Snip@Akom.edu:~$ sh error-status.sh
       PERINTAH GAGAL, EXIT STATUS: 1
       PERINTAH SUKSES, EXIT STATUS: 0
      
       Pada contoh diatas STDERR dan STDOUT semuanya di-redirect ke /dev/null. Hal
       ini agar output perintah rm dan ls tidak muncul dilayar. /dev/null adalah
       semacam file "blackhole" yang dapat kita gunakan untuk mengririm semua output
       yang tidak kita inginkan.
      
       CATATAN:
       Variabel $? hanya berisi error status dari perintah yang TERAKHIR KALI
       dijalankan.


    ----------------------------------
    3.0 Perulangan dalam Shell Script
    ----------------------------------
       Perbedaan utama kita, manusia dengan komputer adalah jika kita melakukan
       suatu pekerjaan berulang-ulang maka rasa bosan pasti datang. Tidak demikian
       dengan komputer, komputer melakukan hal-hal yang sama sebanyak 1 juta kali
       pun dia akan dengan "senang hati" melakukannya.
      
       Perulangan atau looping adalah pengeksekusian suatu blok perintah selama
       kondisi yang digunakan masih bernilai TRUE. Saya yakin anda pernah disuruh
       orang tua anda waktu kecil untuk berhitung 1 - 10. Dimana jika sudah melebihi
       10 anda harus berhenti berhitung karena kondisi meminta anda untuk berhenti
       pada saat mencapai sepuluh.
      
       Analogi sederhana diatas dapat menggambarkan bagaimana suatu looping bekerja.
       Dalam shell script terdapat dua tipe perulangan yaitu:
      
       - for loop
         - for...do...done
         - for...in...do...done
       - while loop
      
       Umumnnya perulangan `for` digunakan apabila kita sudah tahu batas perulangan
       yang akan kita lakukan. Syntax penulisannya adalah:
      
       for nama_variabel in list
       do
          ...
          ...
       done
       -------------------------
       for (( expr1; expr2; expr3 ))
       do
          ...
          ...
       done

    -------------------
    3.1 for...do...done
    -------------------
       Berikut adalah contoh untuk penggunaan for...do...done.
      
       Snip@Akom.edu:~$ nano for.sh
       #!/bin/sh
      
       for (( i=0; i<=5; i++ ))
       do
          echo "PENALTI KE-$i GOL"!!!
       done
       Snip@Akom.edu:~$ sh for.sh
       PENALTI KE-1 GOL!!!
       PENALTI KE-2 GOL!!!
       PENALTI KE-3 GOL!!!
       PENALTI KE-4 GOL!!!
       PENALTI KE-5 GOL!!!

    ------------------------
    3.2 for...in...do...done
    ------------------------
       Pada for-in terdapat perbedaan cara penggunaan, pada for-in kita melakukan
       perulangan berdasarkan data yang ada pada list. Dimana setiap list dipisahkan
       oleh tanda spasi. Berikut adalah contohnya:
      
       Snip@Akom.edu:~$ nano for-in.sh
       #!/bin/sh

       for i in 1 2 3 4 5 ; do
           echo -n "$i "
       done
       echo ''
       for abjad in "A B C D E" ; do
           echo -n "$abjad "
       done
       echo ''
       Snip@Akom.edu:~$ sh for-in.sh
       1 2 3 4 5
       A B C D E

    ---------------------
    3.3 while...do...done
    ---------------------
       Bentuk perulangan lain yang juga sering digunakan adalah while. Perulangan
       menggunakan while lebih difokuskan jika kita memang belum mengetahui batas
       perulangan yang dilakukan. Syntax penggunaan while adalah sebagai berikut:
      
       while [ kondisi ]
       do
          ...
          ...
       done

       Berikut adalah contoh penggunaannya:
      
       Snip@Akom.edu:~$ nano while.sh
       #!/bin/sh

       i=5
       while [ $i -ge 1 ]
       do
           echo "$i Mod 2 = "`expr $i % 2`
          i=`expr $i - 1`
       done
       Snip@Akom.edu:~$ sh while.sh
       5 Mod 2 = 1
       4 Mod 2 = 0
       3 Mod 2 = 1
       2 Mod 2 = 0
       1 Mod 2 = 1

    -------------------------
    3.4 Percabangan Bersarang
    -------------------------
       Suatu percabangan dapat berisi perbacabangan yang lain misalnya for didalam
       for atau while didalam while atau kombinasi keduanya. Nah bentuk inilah yang
       dinamakan percabangan bersarang(nested loop). Jumlah banyaknya nested loop
       dapat dikatakan tidak terbatas.
      
       Anda sebagai pemrogram bebas dapat memasukkan
       sebanyak mungkin percabangan bersarang, tapi tentu dengan berbagai
       pertimbangan teknis. Umumnya maksimal perbacangan bersarang yang sering
       penulis gunakan adalah tiga, namun pada beberapa kondisi bisa lebih dari itu.
       Jadi itu semua relatif terhadap anda sebagai pemrogram dan kondisi yang
       anda hadapi.
      
       Contoh berikut menunjukkan percabangan bersarang menggunakan for dengan
       kedalaman dua level.
      
       Snip@Akom.edu:~$ nano nested-for.sh
       #!/bin/sh

       for (( i=1; i<=5; i++ ))
       do
          for (( j=1; j<=5; j++ ))
          do
             echo -n "$i "
          done
          echo ""
       done
       Snip@Akom.edu:~$ sh nested-for.sh
       1 1 1 1 1
       2 2 2 2 2
       3 3 3 3 3
       4 4 4 4 4
       5 5 5 5 5

    ---------------------  
    4.0 Soal-soal Latihan
    ---------------------
       4.1 Jawab:
       4.2 Jawab:
       4.3 Jawab:
       4.4 Jawab:
       4.5 Jawab:
      
    ---------
    REFERENSI
    ---------
    http://www.freeos.com/guides/lsst/
    http://en.wikipedia.org/wiki/Shell_script
    Backdoor
    Maret 21, 2016 • 0 komentar
    Disclaimer: gambar, artikel ataupun video yang ada di web ini terkadang berasal dari berbagai sumber media lain. Hak Cipta sepenuhnya dipegang oleh sumber tersebut. Jika ada masalah terkait hal ini, Anda dapat menghubungi kami di halaman ini.
    Isi dari komentar adalah tanggung jawab dari pengirim. T.I Sniper mempunyai hak untuk tidak memperlihatkan komentar yang tidak etis atau kasar. Jika ada komentar yang melanggar aturan ini, tolong dilaporkan.

    T.I Sniper

    Your description here

    • Follow
    • Autosultan
    • Wa Admin Bisnis
    Copyright ©2010 - 2022 🔥 T.I Sniper.
    • Beranda
    • Cari
    • Posting
    • Trending
    • Tersimpan