Pemrograman Bash Shell di Linux
Bag. 2
[Link]
agussalim
Simple I/O
• I/O merupakan hal yang mendasar dari kerja komputer karena
kapasitas inilah yang membuat komputer begitu berdayaguna
• I/O yang dimaksud adalah device yang menangani masukan dan
keluaran, baik itu berupa keyboard, floppy, layar monitor,dsb
• selain echo, bash menyediakan perintah builtin printf untuk
mengalihkan keluaran ke output standard, baik ke layar ataupun
ke file dengan format tertentu, mirip statement printf kepunyaan
bahasa C atau perl
contoh1:
#!/bin/bash
#pr1
url="[Link]";
angka=32;
printf "Hi, Pake printf ala C\n\t\a di bash\n";
printf "My url %s\n %d decimal = %o octal\n" $url $angka $angka;
printf "%d decimal dalam float = %.2f\n" $angka $angka;
Keterangan:
\n \t \a adalah karakter sekuen lepas newline,tab, dan bell
%d untuk format data integer
%o octal
%f float atau decimal
%x Hexadecimal
pada script diatas %.2f akan mencetak 2 angka dibelakang koma,
defaultnya 6 angka, informasi lebih lanjut dapat dilihat via man printf.
3 | Internal use only
Input dengan read
Setelah echo dan printf untuk proses output sekarang kita
menggunakan statement read yang cukup ampuh untuk
membaca atau menerima masukan dari input standar
syntax :
read -opsi [nama_variabel...]
4 | Internal use only
Contoh2
#!/bin/bash
#rd1
echo -n "Nama anda :"
read nama;
echo "Hi $nama, apa khabarmu";
echo "Pesan dan kesan :";
read
echo "kata $nama, $REPLY";
5 | Internal use only
contoh3
jika nama_variabel tidak disertakan, maka data yang diinput akan
disimpan di variabel REPLY contoh lain read menggunakan opsi
-t(TIMEOUT), -p (PROMPT), -s(SILENT), -n (NCHAR) dan
-d(DELIM)
#!/bin/bash
read -p "User Name : " user
echo -e "Password 10 karakter,\njika dalam 6 second tidak dimasukkan
pengisian password diakhiri"
read -s -n 10 -t 6 pass
echo "kesan anda selama pake linux, _underscore=>selesai"
read -d_ kesan
echo "User = $user"
echo "Password = $pass"
echo "Kesan selama pake linux = $kesan"
6 | Internal use only
Output dengan konstanta ANSI
• Pengaturan Warna
Untuk pewarnaan tampilan dilayar anda dapat menggunakan
konstanta ANSI (salah satu badan nasional amerika yang
mengurus standarisasi).
syntaxnya:
\033[warnam
Dimana:
m menandakan setting color
7 | Internal use only
Contoh4
contohnya:
[agoes@laptop$]echo -e "\033[31m HELLO\033[0m"
konstanta 31m adalah warna merah dan 0m untuk mengembalikan ke
warna normal (none), tentunya konstanta warna ansi ini dapat
dimasukkan ke variabel PS1 untuk mengatur tampilan prompt shell
anda, contohnya:
[agoes@linux$]PS1="\033[34m"
[agoes@linux$]
[agoes@linux$]echo -e "\033[31;1;33m Bash and ansi
color\033[0m"Bash and ansi color
8 | Internal use only
Pengaturan posisi kursor
sedangkan untuk penempatan posisi kursor, dapat
digunakan salah satu cara dibawah.
Menentukan posisi baris dan kolom kursor:
\033[baris;kolomH
Pindahkan kursor keatas N baris:
\033[NA
Pindahkan kursor kebawah N baris:
\033[NB
Pindahkan kursor kedepan N kolom:
\033[NC
Pindahkan kursor kebelakang N kolom:
\033[ND
9 | Internal use only
Contoh5
#!/bin/bash
SETMYCOLOR="\033[42;1;37m"
GOTOYX="\033[6;35H"
clear
echo -e "\033[3;20H INI DIBARIS 3, KOLOM 20"
echo -e "\033[44;1;33;5m\033[5;35H HELLO\033[0m";
echo -e "$SETMYCOLOR$GOTOYX ANDA LIHAT
INI\033[0m"
10 | Internal use only
utulity output untuk penempatan posisi
kursor
kita dapat pula mengatur penempatan posisi kursor di layar
dengan memanfaatkan utility tput,
syntaxnya:
tput cup baris kolom
11 | Internal use only
Contoh6
contohnya:
#!/bin/bash
clear
tput cup 5 10
echo "HELLO"
tput cup 6 10
echo "PAKE TPUT"
12 | Internal use only
TUGAS
1. Buat Program konversi bilangan dengan masukan
bilangan desimal, dan output bilangan octal, float, dan
hexadesimal
2. Buat Program Konversi Valuta Asing, dengan input Nilai
Rupiah
13 | Internal use only
3. Analisis Kode Berikut:
#!/bin/bash
# This script makes a backup of my home directory.
cd /home
tar cf /var/tmp/home_agoes.tar agoes > /dev/null 2>&1
rm /var/tmp/home_agoes.tar.bz2 2> /dev/null
bzip2 /var/tmp/home_agoes.tar
scp /var/tmp/home_agoes.tar.bz2 bordeaux:/opt/backup/agoes > /dev/null 2>&1
date >> /home/agoes/log/home_backup.log
echo backup succeeded >> /home/agoes/log/home_backup.log
14 | Internal use only