pemrograman shell2

40
Workshop Labsi Pemrograman Shell Linux Husni [email protected] husni.trunojoyo.ac.id

Upload: muhamad-fahrudin

Post on 15-Jan-2017

148 views

Category:

Technology


0 download

TRANSCRIPT

Workshop Labsi

Pemrograman Shell Linux

[email protected]

husni.trunojoyo.ac.id

Garis Besar

Shell Linux Pemrograman Shell Contoh-contoh

Shell

Tempat interaksi antara pengguna dan Linux Penerjemah atau Pengeksekusi Program

(Interpreter, Executor) Antarmuka teks (command line) Banyak digunakan untuk administrasi sistem

dan mengelola file Hanya ada di sistem Unix (Linux). Windows tak

punya tool canggih seperti di Linux Ditandai oleh prompt $ (user) atau # (root)

Menggunakan Shell

Interaktif

Satu atau lebih perintah shell diketik langsung pada prompt

Hasil eksekusi ditampilkan langsung setelah (atau saat) eksekusi perintah

Menulis skrip (shell scripting) Pengguna menulis beberapa baris kode

(program, skrip) File skrip dieksekusi

Interaktif

date; whoami; pwd ps top ls -la echo ”Kereeeen” a=10; echo $a b=109; echo "B bernilai :" $b

Manual Perintah Shell

Gunakan ”man” man ls man ps man file

Bagaimana mencari file dengan ekstensi tertentu? Misalnya *.jpg?

find . -name '*.jpg' file nama_file cat nama_file more nama_file grep keren nama_file man grep

Pipeline

Echo ”aris joko faza fenny ubaid” Echo ”aris joko faza fenny ubaid” | tr ” ” ”\n” Echo ”aris joko faza fenny ubaid” | tr ” ” ”\n” |

sort Echo ”aris joko faza fenny ubaid” | tr ” ” ”\n”

| sort -r

Redirection

date > sekarang.txt cat sekarang.txt date >> sekarang.txt cat sekarang.txt

Menulis Skrip Shell

Tulis skrip menggunakan suatu Text Editor. Simpan sebagai file teks biasa, ekstensi .sh

Ubah agar file skrip .sh tersebut bersifat executable: Baris pertama harus: #!/bin/bash Ubah agar exeutable: chmod +x nama_file.sh

Eksekusi file skrip: . /nama_file.sh

Skrip Pertama: 01.sh

Tulis 2 baris skrip berikut:

#!/bin/bash

echo "Halo, Saya belajar pemrograman shell Bash Linux."

Simpan sebagai skrip01.sh Pada shell prompt, ketik:

chmod +x skrip01.sh . /skrip01.sh

Contoh 02: 02.sh

#!/bin/bash

a=5.66

b=8.67

c=`echo $a + $b | bc`

echo "$a + $b = $c"

Contoh 03: 03.sh

#!/bin/bash

echo "Halo, $LOGNAME"

echo "Tanggal sekarang `date`"

echo "Pengguna: `who i am`"

echo "Direktori aktif `pwd`"

Contoh 04: dir.sh

#!/bin/bash

echo ”Daftar file Anda: ”;

ls -l

echo ”Thank U very Much”;

Contoh05 : secho.sh

#!/bin/sh

# Nama file skrip: kedua.sh

# Apa yang dihasilkan skrip ini?

echo "Halo dunia " # Halo dunia

echo "Halo dunia "

echo "Halo * dunia”; echo Halo * dunia

echo Halo dunia; echo "Halo" dunia

echo Halo " " dunia; echo "Halo \"*\" dunia "

echo `halo` dunia; echo 'hello' dunia

Variabel

Tidak dideklarasikan Tidak ada tipe data Tanpa spasi sebelum dan setelah ”=” Case sensitive A=10; Nama=”Nama anda”; nama = siapa anda

Contoh06: var1.sh

#!/bin/sh

# Nama file skrip: var1.sh

MY_MESSAGE="Halo dunia"

echo $MY_MESSAGE

Contoh07: var2.sh

#!/bin/sh

# Nama file skrip: var2.sh

echo Siapa anda?

read MY_NAME

echo "Hello $MY_NAME - hope you're well."

Contoh08: var3.sh

#!/bin/sh

echo "MYVAR is: $MYVAR"

MYVAR="hi there"

echo "MYVAR is: $MYVAR"

$ MYVAR=hello

$ export MYVAR

$ ./var3.sh

Contoh09: var4.sh

#!/bin/sh

echo "Siapa nama anda?"

read USER_NAME

echo "Halooo $USER_NAME"

echo "Buat file bernama $USER_NAME_file"

touch $USER_NAME_file

#!/bin/sh

echo "Siapa nama anda?"

read USER_NAME

echo "Halooo $USER_NAME"

echo "Buat file bernama ${USER_NAME}_file"

touch ${USER_NAME}_file

echo "Test 1 2 3" >> "${USER_NAME}_file"

cat "${USER_NAME}_file"

Karakter Escape

Bagaimana menampilkan Halo dunia? Bagaimana menampilkan Halo ”dunia”

$ echo "Halo       dunia" $ echo "Halo   \"dunia\""

$ echo "A quote is \", backslash is \\, backtick is \`."

$ echo "A few spaces are    ; dollar is \$. \$X is ${X}."

Perulangan (Looping)

for do done while until

Contoh10: loop1.sh

#!/bin/bash

for i in 1 2 3 4 5

do

echo "Welcome $i times"

done

for i in 1 2 3 4 5 dapat diganti for i in {1..5}

Contoh11: loop2.sh

#!/bin/bash

echo "Bash version ${BASH_VERSION}..."

for i in {0..10..2}

do

echo "Welcome $i times"

done

Bentuk 3 Ekspresi

#!/bin/bash

for (( c=1; c<=5; c++ ))

do

echo "Welcome $c times..."

done

Infinite Loop

#!/bin/bash

for (( ; ; ))

do

echo "infinite loops [ hit CTRL+C to stop]"

done

Looping: While

#!/bin/bash

x=1

while [ $x -le 5 ]

do

echo "Welcome $x times"

x=$(( $x + 1 ))

done

Looping: while

#!/bin/bash

COUNT=6

# bash while loop

while [ $COUNT -gt 0 ]; do

echo Value of count is: $COUNT

let COUNT=COUNT-1

done

Faktorial

#!/bin/bash

counter=$1

factorial=1

while [ $counter -gt 0 ]

do

factorial=$(( $factorial * $counter ))

counter=$(( $counter - 1 ))

done

echo $factorial

Looping: Until

#!/bin/bash

COUNT=0

until [ $COUNT -gt 5 ]; do

echo Value of count is: $COUNT

let COUNT=COUNT+1

done

Array

#!/bin/bash

ARRAY=( 'Debian Linux' 'Redhat Linux' Ubuntu Linux )

# ambil jumlah elemen array

ELEMENTS=${#ARRAY[@]}

for (( i=0;i<$ELEMENTS;i++)); do

echo ${ARRAY[${i}]}

done

Test: if

#!/bin/bash

directory="./BashScripting"

# cek direktori, atau atau tidak

if [ -d $directory ]; then

echo "Directory exists"

else

echo "Directory does not exists"

fi

Perbandingan

#!/bin/bash

NUM1=2

NUM2=2

if [ $NUM1 -eq $NUM2 ]; then

echo "Both Values are equal"

else

echo "Values are NOT equal"

fi

Perbandingan

#!/bin/bash

NUM1=2

NUM2=1

if [ $NUM1 -eq $NUM2 ]; then

echo "Both Values are equal"

elif [ $NUM1 -gt $NUM2 ]; then

echo "NUM1 is greater then NUM2"

else

echo "NUM2 is greater then NUM1"

fi

Fungsi

function name(){

Commands

}

---- atau ----

name(){

Commands

return $TRUE

}

Fungsi

/bin/bash

function function_B { echo Function B. }

function function_A { echo $1 }

function function_D { echo Function D. }

function function_C { echo $1 }

Memanggil Fungsi

# Lewatkan parameter ke fungsi A

function_A "Function A."

function_B

# Lewatkan parameter ke fungsi C

function_C "Function C."

function_D

Case

#!/bin/bash

echo "Apa bahasa favorit Anda?"

echo "1) bash"

echo "2) perl"

echo "3) phyton"

echo "4) c++"

echo "5) Mene ketehe !"

read case;

#simple case bash structure

case $case in

1) echo "Anda memilih bash";;

2) echo "Anda memilih perl";;

3) echo "Anda memilih phyton";;

4) echo "Anda memilih c++";;

5) exit

esac