Cara Menggunakan Bash Script di Linux
Sebelum memulai tentang script, pertama pertama saya ingin menjelaskan informasinya dulu, jadi BASH merupakan akronim dari Bourne Again Shell, dan merupakan salah satu nama unix shell.
Bash digunakan secara default pada mayoritas distro linux, varian lainnya antara lain Z Shell dan Almquist shell
Alasan menggunakan bash scripting.
- Mengeliminasi task yang berulang-ulang.
- Menghemat waktu.
- Menyederhanakan command
- Membuat flow (aliran) logika.
- Digunakan di awal server (server start-up) atau dengan menambahkan cron job terjadwal.
Ciri ciri
Selalu diawali dengan:
1
#!/bin/bash
Note: Perhatikan karakter [ #! ] Apakah gerangan maksudnya ?? :D
Jadi untuk karakter awal [ #! ] cara bacanya adalah shebank, karakter ini menjelaskan bahwa file yang dibuat dianggap sebagai program yang dijalankan oleh misalnya bash :[#!/bin/bash] atau python misalnya: [#!/usr/bin/python]
Variable
Pada penggunaan bash scripting, kalian juga bisa menggunakan variable seperti pada bahasa pemrograman lainnya, berikut contohnya:
- Variable
1
2
3
4
NAME="Tampan"
echo $NAME
or
echo "$NAME"
- String Quotes
1
2
3
NAME="John"
echo "Hi $NAME" #=> Hi John
echo 'Hi $NAME' #=> Hi $NAME
- Interactive shell (basic)
Kalian juga bisa menciptakan prompt
untuk mengisikan sebuah variable, berikut contohnya:
1
2
3
#!/bin/bash
read -p "Nama kamu siapa ganteng ? : " nama
echo "Nama saya $nama, cantik~"
Mudah bukan ??
Perulangan (Looping)
Seperti bahasa pemrograman, pada bash juga bisa dilakukan perulangan dan biasanya ini digunakan oleh para sysadmin atau developer untuk mempermudah pekerjaan disisi server berikut contohnya:
- Looping (Basic)
1
2
3
4
5
echo {1..4}
or
echo {1,5,10}
or
echo {10..50..10}
OR
1
2
3
4
#!/bin/bash
for i in /etc/rc.*; do
echo $i
done
- Looping (C-Style)
1
2
3
4
#!/bin/bash
for ((i = 0 ; i < 100 ; i++)); do
echo $i
done
Penerapan:
Semisal kalian akan mengeksekusi perintah update repository atau package pada 4 server, kaliang bisa memanfaatkan fitur looping seperti berikut:
1
for i in {1..4}; do ssh user@192.168.1.$i apt/yum update; done
Mudah bukan ?
Penggunaan Array
Array digunakan jika pada 1 variable berisi beberapa value, semisal variable buah memiliki value seperti: pisang, jeruk, apel. Untuk jelasnya berikut contoh penggunaannya:
1
2
3
4
5
6
7
Fruits=('Apple' 'Banana' 'Orange')
or
Fruits[0]="Apple"
Fruits[1]="Banana"
Fruits[2]="Orange"
- Pemanggilan Array
Untuk memanggil array yang telah dibuat, Kalian bisa memanfaatkan tools echo
seperti berikut:
1
2
3
echo ${Fruits[0]} # Element #0
echo ${Fruits[-1]} # Last element
echo ${Fruits[@]} # All elements, space-separated
Bagaiamana, mudah bukan ?
Statement
Penggunaan statement pada bash memungkinkan Anda untuk membuat sebuah keputusan dalam Bash Scripting. Ini memungkinkan kita untuk memutuskan apakah akan menjalankan sebuah kode berdasarkan atau tidak berdasarkan kondisi yang mungkin kita tetapkan. Sebuah statement dapat juga dikombinasikan dengan looping atau perulangan yang memungkinkan kita untuk membuat skrip yang jauh lebih kompleks dan dapat menyelesaikan tugas yang lebih besar, berikut contohnya
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
case $provinsi in
1)
echo ${jabar[@]}
;;
2)
echo ${jatim[@]}
;;
3)
echo ${jateng[@]}
;;
esac
Ayo belajar langsung
Latihan1
- Silakan clone repository ini: Belajar Bash Scripting
- Buat sebuah file dan isikan dengan script berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
# Masuk ke directory testing
cd $PWD/testing
# Listing isi folder
c=1
for file in $( ls -1); do
var[$c]="$file";
c=$(($c+1));
done
# define variable
read -p "Karakter yang dicari : " old
read -p "Karakter yang mau diganti : " new
# list file
echo ""
echo "Berikut list file yang ada pada folder sampel:"
echo ""
for loop in "${var[@]}"; do
echo $loop;
done
echo ""
read -p "Masukan nomor file : " numfile
# Fungsi
sed -i "s|$old|$new|g" $PWD/${var["$numfile"]}
# Verifikasi
cat $PWD/${var["$numfile"]}
Lalu coba eksekusi filenya dan lihat hasilnya ^^
Latihan2
- Buat sebuah file dan isikan dengan script berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash
jabar=('bogor' 'bekasi' 'depok')
jatim=('jombang' 'malang' 'pasuruan')
jateng=('purwakerto' 'semarang' 'wonogiri')
echo "List provinsi !"
echo "1. jabar"
echo "2. jatim"
echo "3. jateng"
read -p "Masukan provinsi : " provinsi;
case $provinsi in
1)
echo ${jabar[@]}
;;
2)
echo ${jatim[@]}
;;
3)
echo ${jateng[@]}
;;
esac
Lalu coba eksekusi filenya dan lihat hasilnya ^^