Anda di halaman 1dari 11

SISTEM OPERASI

MODULE 7: SHELL SCRIPTING

POKOK BAHASAN: OBJEKTIF:

‫ﻫ‬ Penggunaan editor vi  Mahasiswa mampu menggunakan editor vi


‫ﻫ‬ Pembuatan shell skrip sederhana atau yang lainnya
‫ﻫ‬ Shell skrip dengan  Mahasiswa mampu membuat skrip
pengkondisian sederhana di shell
‫ﻫ‬ Penggunaan looping di shell  Mahasiswa mampu membuat skrip dengan
skrip pengkondisian
 Mahasiswa mampu membuat skrip dengan
pengulangan

TUGAS PRAKTIKUM:

1. Mengerjakan setiap langkah yang ada di modul praktikum dengan bukti print screen dari
output yang didapat dan harus melalui shell dengan nama Anda.
2. Menjawab seluruh soal praktikum
3. Berikan kesimpulan dari hasil praktikum
4. Berikan saran jika ada
5. Mengumpulkan hasil praktikum di learning pada link yang telah disediakan di akhir sesi
praktikum dengan format file docx/pdf, berikan nama file dengan nama Anda dan TIDAK
ADA PENAMBAHAN WAKTU PENGUMPULAN

Jangan lupa copy-kan file vdi hasil instalasi Linux Anda ke Flashdisk Anda agar Anda
dapat menggunakan kembali hasil instalasi tersebut di komputer manapun cukup
dengan menginstal kembali dari file vdi ini!!

PENJELASAN:

Script shell memungkinkan kita untuk mengambil urutan perintah yang kompleks,
menempatkannya ke dalam file dan kemudian menjalankan file sebagai program. Ini menghemat
waktu kita karena harus berulang kali mengetik urutan perintah yang panjang dan dilakukan
secara rutin.

Pada bagian ini kita fokus pada cara membuat skrip shell sederhana. Untuk keperluan ini,
diasumsikan bahwa Anda tahu cara menggunakan editor teks. Silakan gunakan editor pilihan yang
Anda kuasai: vi, nano, gedit atau editor lain yang Anda suka.

Copyleft NDG cisco dan disesuaikan oleh Agus Fatulloh


1
SISTEM OPERASI
LANGKAH 1:

Untuk membuat skrip shell sederhana, hanya perlu membuat file teks dan menambahkan
perintah. Buat file bernama sample.sh. Sekarang ketikkan perintah berikut ini di shell: nano
sample.sh, seperti pada gambar 7.1

Gambar 7.1

Selanjutnya tulis file sample.sh seperti berikut:

Tekan ^x diikuti dengan tombol y, perintah tersebut bermakna menyimpan file sekaligus keluar
dari mode menulis file dan kembali ke shell.

LANGKAH 2:

Menjalankan skrip file sample.sh dengan cara mengetikkan perintah di shell: ./sample.sh, jika
ternyata ditemukan error permission denied, itu artinya user belum memiliki hak akses untuk
mengeksekusi file tersebut, sekarang berikan perintah lanjutan di shell: chmod +x sample.sh,
perintah ini adalah untuk memberikan hak akses ke semua user terhadap file tersebut. Sekarang
jalankan kembali perintah untuk mengeksekusi file yaitu ./sample.sh, maka akan tampil output
seperti gambar 7.2

Gambar 7.2

LANGKAH 3:

Fitur umum yang digunakan dalam skrip adalah "backquoting". Dengan teknik ini, Anda dapat
menjalankan perintah shell "di dalam" perintah shell lain. Hasil dari perintah internal akan
dikembalikan sebagai argumen ke perintah eksternal. Tambahkan perintah berikut ini ke dalam
file sample.sh pada akhir baris: echo “Hari ini” `date +%A`

Sekarang jalankan kembali perintah untuk mengeksekusi file yaitu ./sample.sh, maka akan
tampil output seperti gambar 7.3

Copyleft NDG cisco dan disesuaikan oleh Agus Fatulloh


2
SISTEM OPERASI

Gambar 7.3

LANGKAH 4:

Anda telah menggunakan ./ di depan nama file sample.sh untuk menunjukkan bahwa file tersebut
ada di direktori saat ini. Jalankan yang berikut untuk melihat bagaimana shell akan gagal
menemukan file jika Anda tidak menggunakan ./:

Gambar 7.4

LANGKAH 5:

Ingat bahwa variabel $PATH digunakan untuk mencari perintah yang Anda ketikkan. Jalankan
perintah berikut untuk melihat variabel $PATH untuk akun sysadmin. Sekarang ketikkan perintah
berikut ini di shell: echo $PATH, seperti pada gambar 7.5

Gambar 7.5

LANGKAH 6:

Perhatikan bahwa /home/sysadmin/bin adalah salah satu direktori dalam variabel $PATH. Ini
adalah tempat yang tepat untuk meletakkan skrip shell Anda. Sekarang ketikkan urutan perintah
berikut ini di shell seperti terlihat pada gambar 7.6

Copyleft NDG cisco dan disesuaikan oleh Agus Fatulloh


3
SISTEM OPERASI

Gambar 7.6

LANGKAH 7:

Skrip yang lebih kompleks dapat menggunakan eksekusi bersyarat. Ekspresi bersyarat, seperti
pernyataan if, dapat memanfaatkan hasil dari perintah yang disebut test. Pernyataan test
membandingkan dua angka (atau dua string) untuk hal-hal seperti "sama dengan", "kurang dari", dll.

Buat file berikut (drive.sh) dan membuatnya dapat dieksekusi untuk melihat bagaimana pernyataan
if dan test bekerja. Mulailah dengan menempatkan yang berikut ini di drive.sh:

Isi file drive.sh Keterangan

#!/bin/bash

echo "Masukkan usia Anda" # tampil di prompt

read usia # membaca input dari variabel $usia

if test $usia -lt 16 # test $usia -lt 16 mengembalikan "true" jika $usia
nilainya lebih kecil dari 16

then

Copyleft NDG cisco dan disesuaikan oleh Agus Fatulloh


4
SISTEM OPERASI
Isi file drive.sh Keterangan

echo "kamu belum terlalu # eksekusi jika test nilai true


tua kok."

else

echo "Sorry, kamu sudah # eksekusi jika nilai test false


tua!"

fi # akhir dari statment if

Maka output yang akan Anda dapat jika skrip yang Anda buat benar, seperti terlihat pada gambar
7.7

Gambar 7.7

LANGKAH 8:

Pernyataan pengujian secara otomatis dipanggil ketika Anda menempatkan argumen dalam kurung
siku [ ] dan setelah dan sebelum kurung siku ini harus mengandung spasi. Ubah baris di file
drive.sh dari if test $usia -lt 16 menjadi if [ $usia –lt 16 ]. Selanjutnya silahkan
dieksekusi.

Copyleft NDG cisco dan disesuaikan oleh Agus Fatulloh


5
SISTEM OPERASI
LANGKAH 8:

Anda juga dapat menggunakan hasil dari perintah shell lain karena semuanya mengembalikan
"sukses" atau "gagal". Misalnya, buat dan jalankan program berikut, yang dapat digunakan untuk
menentukan apakah akun pengguna ada di sistem ini. Tuliskan skrip berikut di file cek.sh, seperti
terlihat pada gambar 7.8

Gambar 7.8

Selanjutnya eksekusi file tersebut, jika skrip yang Anda tulis benar, silahkan lakukan percobaan
maka hasil outputnya akan terlihat seperti pada gambar 7.9

Gambar 7.9

LANGKAH 9:

Pernyataan bersyarat umum lainnya disebut loop sementara. Pernyataan ini digunakan untuk
mengeksekusi kode berulang kali selama pemeriksaan bersyarat mengembalikan "true". Tulis skrip
file angka.sh:

#!/bin/bash

Copyleft NDG cisco dan disesuaikan oleh Agus Fatulloh


6
SISTEM OPERASI
echo "Masukkan angka lebih besar dari 100"

read angka

while [ $angka -le 100 ]

do

echo "$angka tidak lebih besar dari 100."

echo "Mohon masukkan angka lebih besar dari 100"

read angka

done

echo "Akhirnya, $angka lebih besar dari 100"

Silahkan eksekusi file di atas!

LANGKAH 10:

Kode skrip adalah bagian dari shell BASH, yang berarti Anda dapat menggunakan pernyataan ini
pada baris perintah sama seperti Anda menggunakannya dalam skrip shell. Ini bisa berguna untuk
pernyataan seperti pernyataan for, pernyataan yang akan menetapkan daftar nilai satu per satu ke
suatu variabel. Ini memungkinkan Anda untuk melakukan serangkaian operasi pada setiap nilai.
Misalnya, jalankan perintah berikut ini di shell seperti yang ditunjukkan pada gambar 7.10

Copyleft NDG cisco dan disesuaikan oleh Agus Fatulloh


7
SISTEM OPERASI

Gambar 7.10

Di sana terlihat perintah wc dikerjakan sebanyak tiga kali sesuai dengan banyaknya jumlah file
diminta untuk di hitung.

LANGKAH 11:

Seringkali perintah seq digunakan bersama dengan pernyataan for. Perintah seq dapat
menghasilkan daftar nilai integer, misalnya dari 1 hingga 10. Misalnya, jalankan perintah berikut di
shell untuk membuat file secara berulang menggunakan fungsi seq.

Gambar 7.11

LANGKAH 12:

Pada langkah ini, Anda akan mencoba membuat sebuah program yang dapat menampung nilai
integer, dalam pemrograman shell untuk dapat menampung nilai integer maka Anda harus
memberikan keyword tertentu.

Keyword yang digunakan untuk menampung nilai interger adalah expr. Bagaimana cara
mengimplementasikan keyword ini, lihat dan tulis skrip program seperti pada gambar 7.12 dengan
nama file integer.sh

Copyleft NDG cisco dan disesuaikan oleh Agus Fatulloh


8
SISTEM OPERASI

Gambar 7.12
Penjelasan:

Fungsi Keterangan
echo –e “x=\c” karakter –e dan \c adalah satu paket fungsi di shell agar kursor tidak pindah
baris

read fungsi untuk membaca data dari keyboard

expr fungsi/keyword agar variabel hasil dapat menampung nilai interger

Hal penting yang harus diperhatikan ketikan memberikan keyword expr ini yaitu tidak boleh
mengandung spasi setelah tanda = (sama dengan) dan harus menggunakan backquote. Sekarang
jalankan skrip di atas!

LANGKAH 13:

Lalu bagaimana cara menampung nilai pecahan (floating)? Sama hal nya seperti nilai integer di
shell programming, ada fungsi tersendiri yagn digunakan untuk dapat menampung sebuah nilai
floating.

Keyword yang digunakan untuk menampung nilai floating adalah bc. Bagaimana cara
mengimplementasikan keyword ini, lihat dan tulis skrip program seperti pada gambar 7.13 dengan
nama file float.sh

Copyleft NDG cisco dan disesuaikan oleh Agus Fatulloh


9
SISTEM OPERASI

Gambar 7.13

Sekarang jalankan skrip di atas dan berikan inputan dengan nilai pecahan misal x=2.3 dan y=3.2
maka output nya harusnya= 5.5.

Ada yang harus difahami dengan baik pada skrip di atas, khususnya pada baris hasil=`echo “$x
+ $y” | bc`. Skrip tersebut menggambarkan bahwa sesungguhnya nilai penjumlahan x + y itu
dihitung terlebih dahulu oleh sistem dan disimpan kemudian hasilnya di pipeline atau dengan
bahasa yang lebih sederhana hasil penjumlahannya akan ditampung terlebih dahulu oleh sistem
setelah itu baru dikirim ke fungsi bc dan kemudian diberikan ke variabel hasil.

LANGKAH 14:

Agar output yang didapat sesuai dengan hasil perhitungan matematis maka Anda perlu
menambahkan keyword tertentu. Sekarang ubah baris hasil=`echo “$x / $y” | bc` di skrip
Anda menjadi hasil=`echo “scale=2; $x / $y” | bc` lalu simpan dan jalankan!

Kenapa jika tanpa fungsi scale hasilnya tidak sesuai? Itu dikarenakan operator / (slash) hanya
menjalankan fungsi div, sehigga outputnya hanya berupa hasil pembagian sementara nilai
pecahannnya tidak disertakan.

Agar nilai pecahannya juga ditampilkan maka kita perlu menambahkan keyword scale. Fungsi
scale mendefinisikan sebarapa banyak angka desimal setelah titik. Pada kasus di atas kita berikan
nilai 2 itu menandakan bahwa angka desimal setelah titik sebanyak 2 karakter sehingga sekarang
output dari pembagian di atas lengkap dengan nilai pecahannya.

Screenshoot script Anda dan hasil eksekusi file float.sh!

Ada catatan penting yang harus diperhatikan dalam pemrogram shell ini:

Copyleft NDG cisco dan disesuaikan oleh Agus Fatulloh


10
SISTEM OPERASI
KESIMPULAN:

Berikan kesimpulan Anda dari praktikum ini!

tuliskan ada berapa perintah yang sudah Anda kuasai ditambah dengan yang lalu

SARAN:

Berikan saran jika ada!

Copyleft NDG cisco dan disesuaikan oleh Agus Fatulloh


11

Anda mungkin juga menyukai