Setelah mempelajari mengenai elemen-elemen dasar pada suatu script, kali ini saya akan menjelaskan bagaimana membuat file script.
Jika Anda ingin mempelajari ulang mengenai elemen-elemen yang dimaksud, bisa Anda pelajari melalui tautan-tautan dibawah ini:
- Konsep dasar Shell Variables
- Konsep dasar Shell Conditionals
- Konsep dasar Shell Loops
- Konsep dasar Shell Functions
Pada dasarnya, shell script merupakan file yang berisi serangkaian instruksi shell yang disusun sedemikian rupa untuk tujuan tertentu.
Diantara tujuan tersebut dapat berupa instruksi otomasi proses, CLI (command line interface) tool, program wrapper sebagai ekstensi suatu program lain yang sudah ada, dan semisalnya.
Struktur Dasar
Ekstensi file
Pada umumnya, file script diberi akhiran .sh
namun sebenarnya ini tidak wajib. Hanya saja ini merupakan praktik yang umum dilakukan.
Namun, ini akan memudahkan user untuk bisa mengetahui bahwa suatu file adalah file script atau bukan, bisa dilihat dari ekstensi .sh
-nya.
Shebang / Hashbang
Suatu file script selalu diawali dengan yang namanya SHEBANG atau HASHBANG. Contohnya adalah seperti berikut ini:
|
|
Fungsi dari shebang ini adalah untuk memberitahu shell bahwa untuk menjalankan script tersebut, program yang digunakan adalah bash (atau yang lainnya).
Maka, shebang ini ditentukan di baris paling pertama, diawali dengan karakter pagar dan pentung #!
. Kemudian diikuti dengan path menuju file binary program/shell yang ingin ditulis scriptnya.
Misalnya, jika hendak menulis script untuk Bourne Shell (sh), maka:
|
|
atau Z Shell:
|
|
atau Python 3.10:
|
|
atau awk:
|
|
dan sebagainya.
Bagaimana jika path untuk shell Bash (misalnya), lokasinya tidak menentu? Bisa jadi ada di /bin/bash
atau /usr/bin/bash
atau /usr/local/bin/bash
?
Praktik yang disarankan adalah menggunakan program env
, contoh:
|
|
Dengan demikian, env
akan mencari path yang valid untuk shell Bash tanpa harus menentukannya secara hard-coded.
Memiliki izin eksekusi (executable)
Suatu file script perlu memliki izin eksekusi (executable) agar bisa dieksekusi langsung tanpa harus memanggil shell yang terkait.
|
|
Jika tidak demikian, ketika hendak dieksekusi, maka shell akan mengeluarkan error “Permission denied”.
|
|
Atau, perlu memanggil program/shell yang akan digunakan terlebih dahulu sebelum mengeksekusi. Contohnya:
|
|
Contoh file script
Script hello-world.sh
:
|
|
Script oraganize.sh
, berfungsi untuk menata file berdasarkan ekstensi file:
|
|
Semoga bermanfaat, barakallahufiikum.