Praktikum 9 Pemrograman Shell
Praktikum 9 Pemrograman Shell
A. T U J U A N
B. DASAR TEORI
Secara umum semua variable adalah lokal. Variable lokal digunakan pada
shell yang sama, jika anda me -load atau memanggil shell lainnya
(dengan mengetik /bin/bash pada prompt) maka shell yang baru tersebut
akan mengabaikan variable pada shell sebelumnya.
Global shell didefinisikan : Anda dapat mengkopi variable shell yang lama
ke shell yang baru.
sintaks :
sintaks :
FUNGSI
Contoh :
F1( ) {
……..
……..
return 1
}
sintaks :
TRAP COMMAND
sintaks :
trap {commands} {signal numberlist}
0 shell exit
1 hangup
2 interrupt (CTRL+C)
3 quit
9 kill
C. LANGKAH-LANGKAH
1. Masuk ke sistem operasi Linux.
2. Login sebagai mahasiswa.
3. Lakukan operasi pembuatan variable local dan global.
4. Lakukan eksekusi bersyarat
5. Buatlah fungsi
6. Buat user interface : message box, input box, yesno box, dialog
dengan menu
7. Lakukan trap command
D. PERCOBAAN
$vehc=Bus
$echo $vehc
$exit
$echo $vehc
$vehc=Bus
$echo $vehc
$export vehc
$/bin/bash
$echo $vehc
$exit
$echo $vehc
$rm myfile && echo “File berhasil dihapus” || echo “File tidak
terhapus”
Percobaan 4 : Fungsi
$ Hallo()
{
echo “Hallo $LOGNAME, have a nice day”
return
}
$Hallo
3. Fungsi ini akan hilang ketika komputer di-restart. Untuk mengatasi hal
ini dan untuk menambahkan fungsi anda dan untuk otomatisasi task
harian, masukkan fungsi ke dalam file /etc/bashrc. Untuk ini anda
harus logon sebagai root.
$ su –l
#vi /etc/bashrc
today()
{
echo Hari ini adalah `date +"%A %d in %B of %Y (%r)"`
return
}
6. Fungsi ini akan tersedia untuk semua user. Untuk menjalankan fungsi
ini anda harus exit dahulu, lalu login kembali, kemudian jalankan
fungsi ini
#today
$today
7. Untuk membuat fungsi bagi user tertentu dan hanya tersedia bagi
user tertentu maka buka file .bashrc di home directory user
$ vi .bashrc
Hai()
{
echo “Hai $LOGNAME ! Tidak akan ada perubahan, kecuali anda
login kembali !”
echo “Tekan sembarang tombol…”
read
return
}
9. Simpan lalu exit. Untuk menjalankan fungsi ini anda harus exit dahulu lalu login kembali.
Fungsi ini akan tersedia hanya bagi user anda, tidak bagi semua user di sistem.
$ Hai
$vi .bash_logout
$chmod +x dialog1
$./dialog1
$chmod +x dialog2
$./dialog2
sel=$?
case $sel in
0)echo “user akan menghapus file”;;
1)echo “user tidak jadi menghapus file”;;
255)echo “dibatalkan user, dengan menekan tombol [ESC]”;;
esac
$chmod +x dialog3
$./dialog3
Percobaan 12 : InputBox
sel=$?
na=`cat /tmp/input.$$`
case $sel in
0) echo “Hallo $na” ;;
1) echo “Cancel ditekan” ;;
255) echo “Tombol [ESC] ditekan” ;;
esac
rm -f /tmp/input.$$
$chmod +x dialog4
$./dialog4
Percobaan 13 : Dialog Menu
menuitem=`cat /tmp/menuitem.$$`
opt=$?
case $menuitem in
Tanggal) date;;
Kalender) cal;;
Editor) vi;;
esac
$rm -f /tmp/menuitem.$$
$chmod +x dialogmenu
$./dialogmenu
$chmod +x tessinyal
$./tessinyal
Take_input()
{
recno=0
clear
echo "Aplikasi Catatan Appointment di Linux"
echo -n "Masukkan nama file database : "
read filename
if [ ! -f $filename ];then
echo "Maaf, $filename tidak ada, sekarang akan dibuat
$filename database"
echo "Aplikasi Catatan Appointment database file" >
$filename
fi
echo "Pemasukan data pada tanggal: `date`" >/tmp/input0.$$
while :
do
echo -n "Judul Appointment :"
read nama
echo -n "Time :"
read waktu
echo -n "Catatan :"
read catatan
echo -n "Data Okay (y/n) ?"
read jawaban
#panggil fungsi
Take_input
$chmod +x tessinyal1
$./tessinyal1
6. Setelah mengisi beberapa data, tampilkan isi database dengan perintah
cat
$cat namadatabase
$./tessinyal1
Cukup isi satu data saja, setelah itu tekan ctrl+c sebelum
menjawab pertanyaan “Tambah data (y/n)” maka program akan
terminated(berhenti), dan temporay file akan tertinggal di /tmp
direktori.
$ls /tmp/input*
$vi tessinyal1
del_file()
{
echo" Penjebakan penekanan tombol [ctrl]+c"
rm -f /tmp/input0.$$
exit 1
}
Take_input()
{
recno=0
clear
echo "Aplikasi Pengingat Appointment di Linux"
echo -n "Masukkan nama file database : "
read filename
if [ ! -f $filename ];then
echo "Maaf, $filename tidak ada, sekarang akan dibuat
$filename database"
echo "Aplikasi Pengingat Appointment database file" >
$filename
fi
echo "Pemasukan data pada tanggal: `date`" >/tmp/input0.$$
while :
do
echo -n "Judul Appointment :"
read nama
echo -n "Waktu :"
read waktu
echo -n "Catatan :"
read catatan
echo -n "Data Okay (y/n) ?"
read jawaban
#memanggil fungsi
trap del_file 2
Take_input
$./tessinyal1
11. Coba tekan CTRL+C ketika pengisian data. Periksa temporary file
$ls /tmp/input*