Catatan Kuliah: Shell Scripting Dasar untuk Otomatisasi Server

Catatan Kuliah: Shell Scripting Dasar untuk Otomatisasi Server

Bayangkan jika Anda harus mengetikkan 20 perintah yang sama setiap hari di terminal server. Sangat melelahkan, bukan? Di sinilah Shell Scripting menjadi penyelamat. Kita bisa mengumpulkan perintah-perintah Linux tersebut ke dalam satu file script, lalu menjalankannya secara otomatis dalam sekali pencet! Yuk, kita pelajari konsep dasarnya dari nol.

1. Fondasi Utama: Shebang dan Menampilkan Output

Setiap kali Anda membuat file shell script (biasanya berakhiran ekstensi .sh), ada dua aturan mendasar yang wajib dipahami:

A. Apa itu Shebang (#!/bin/bash)?

Baris paling pertama di dalam shell script harus selalu diawali dengan tanda Shebang (#!). Fungsinya adalah memberi tahu sistem operasi jenis interpreter (shell) apa yang harus digunakan untuk mengeksekusi kode di bawahnya.

#!/bin/bash

Artinya, sistem akan menjalankan script ini menggunakan Bash Shell.

B. Menampilkan Teks dengan echo

Perintah echo digunakan untuk menampilkan teks atau pesan ke layar terminal. Ada beberapa opsi tambahan yang sering dipakai:

  • echo -n: Menampilkan teks tanpa membuat baris baru di akhir kalimat. Sangat berguna jika Anda ingin kursor input pengguna tetap berada di baris yang sama.
  • echo -e: Mengaktifkan fitur kode escape sequence (seperti \n untuk baris baru, atau \t untuk tab).

2. Variabel dan Menerima Input Pengguna (read)

Membuat dan Mengakses Variabel

Variabel digunakan untuk menyimpan data sementara di memori. Ingat aturan emas ini: Jangan gunakan spasi di sekitar tanda sama dengan (=) saat membuat variabel! Untuk memanggil nilainya kembali, gunakan tanda dolar ($) di depan nama variabel tersebut.

# Cara menulis variabel (Benar)
nama="Budi"
umur=20

# Cara memanggil variabel
echo $nama
echo "Umur saya adalah $umur tahun"

Mengambil Input dengan read

Agar script kita interaktif, kita bisa meminta pengguna mengetikkan sesuatu menggunakan perintah read. Ada dua cara untuk membuatnya:

# Cara 1: Menggunakan gabungan echo dan read
echo -n "Masukkan nama: "
read nama

# Cara 2: Lebih singkat menggunakan opsi -p (Prompt)
read -p "Masukkan nama: " nama

Jika Anda ingin pengguna memasukkan data sensitif seperti password agar ketikannya tidak muncul di layar, gunakan opsi -s (silent):

read -sp "Masukkan password Anda: " pass

Anda juga bisa memberi batas waktu mengetik (misal maksimal 5 detik) menggunakan opsi -t 5.

3. Struktur Percabangan (If-Else) dan Operator

Shell script juga mendukung logika percabangan untuk mengambil keputusan. Struktur dasarnya adalah sebagai berikut:

if [ syarat ]; then
perintah_jika_syarat_benar
elif [ syarat_lain ]; then
perintah_jika_syarat_lain_benar
else
perintah_jika_salah
fi

Pastikan ada spasi setelah kurung siku buka [ dan sebelum kurung siku tutup ].

Operator Perbandingan Angka (Numeric)

Di dalam shell script, kita tidak menggunakan simbol seperti >, <, atau == untuk membandingkan angka biasa, melainkan menggunakan kode huruf berikut:

  • -eq : Sama dengan (==)
  • -ne : Tidak sama dengan (!=)
  • -gt : Lebih besar (>)
  • -lt : Lebih kecil (<)
  • -ge : Lebih besar atau sama dengan (>=)
  • -le : Lebih kecil atau sama dengan (<=)

Contoh Penerapan:

if [ $umur -ge 18 ]; then
echo "Kategori: Dewasa"
else
echo "Kategori: Belum Dewasa"
fi

Operasi Matematika, Teks, dan Cek File

  • Operasi Angka: Gunakan tanda kurung ganda $(( ... )) untuk perhitungan matematika. Contoh: total=$((x + 1)).
  • Perbandingan Teks: Gunakan kurung siku ganda [[ "$teks1" == "$teks2" ]].
  • Cek File: Gunakan [ -f nama_file ] untuk mendeteksi apakah sebuah file fisik ada di dalam folder atau tidak.

4. Fungsi (Functions) di Shell Script

Sama seperti bahasa pemrograman lainnya, Anda bisa mengelompokkan kode ke dalam fungsi agar bisa dipanggil berulang kali tanpa menulis ulang. Parameter yang dikirim ke dalam fungsi akan dibaca sebagai $1 (argumen pertama), $2 (argumen kedua), dan seterusnya.

# Membuat fungsi bernama salam
salam() {
echo "Halo, $1" # $1 menangkap parameter pertama
}

# Memanggil fungsi
salam "Andi"

Setiap perintah atau fungsi yang selesai dijalankan akan menghasilkan return code (bisa dicek melalui variabel $?). Angka 0 berarti proses sukses dijalankan, sedangkan angka selain 0 menandakan adanya error.

5. Cara Menyimpan dan Menjalankan Script (chmod +x)

Misalkan kita membuat file script bernama hello.sh. Secara default, Linux tidak akan mengizinkan file tersebut langsung dijalankan demi alasan keamanan.

Ada dua cara untuk mengeksekusinya:

Cara Alternatif (Tanpa Izin Eksekusi)

Anda bisa memanggil program bash secara langsung diikuti nama file-nya:

bash hello.sh

Cara Utama & Profesional (Menggunakan chmod +x)

Ubah izin file tersebut agar memiliki hak eksekusi (execute) menggunakan perintah chmod +x:

chmod +x hello.sh

Setelah diberi izin, Anda bisa mengeksekusi script tersebut kapan saja dari direktori saat ini menggunakan tanda ./:

./hello.sh

(Tanda ./ berfungsi untuk memberi tahu Linux agar mencari file tersebut di direktori tempat kita berada sekarang).

Kesimpulan

Shell scripting adalah senjata rahasia para SysAdmin untuk mengotomatiskan tugas-tugas rumit di server Linux. Dengan menguasai logika if-else, penggunaan variabel, dan cara mengambil input, Anda sudah bisa membuat skrip otomatisasi sederhana seperti skrip backup data atau pengecekan kondisi server otomatis.