Jika Anda mempelajari skrip Bash dengan membaca kode orang lain, Anda mungkin memperhatikan bahwa baris pertama skrip dimulai dengan #!
karakter dan jalur ke penerjemah Bash.
Urutan karakter ini (#!
) disebut shebang dan digunakan untuk memberi tahu sistem operasi penerjemah mana yang akan digunakan untuk mengurai sisa file.
Petunjuk Penerjemah Shebang #
Arahan penerjemah Shebang mengambil bentuk berikut:
#!interpreter [arguments]
- Direktif harus menjadi baris pertama dalam skrip.
- Direktif harus dimulai dengan shebang
#!
- Spasi putih setelah karakter shebang adalah opsional.
- Interpreter adalah path lengkap ke file biner (mis:
/bin/sh
,/bin/bash
). - Argumen penerjemah bersifat opsional.
Contoh:
#!/bin/bash
- Menggunakanbash
untuk mengurai file.#!/usr/bin/env perl
- Menggunakanenv
perintah untuk menemukan jalur keperl
dapat dieksekusi.#!/usr/bin/python
Mengeksekusi file menggunakanpython
biner.
Menggunakan Shebang dalam Skrip Bash #
Jika shebang tidak ditentukan dan pengguna yang menjalankan skrip Bash menggunakan Shell lain, skrip akan diuraikan oleh penerjemah default apa pun yang digunakan oleh Shell itu. Misalnya, penerjemah default untuk bash
adalah bash
dan untuk zsh
adalah sh
. Untuk memastikan bahwa skrip Anda akan selalu ditafsirkan dengan Bash, Anda harus menentukan jalur yang dapat dieksekusi menggunakan Shebang.
Ada dua cara untuk menggunakan direktif Shebang dan mengatur interpreter.
-
Menggunakan jalur absolut ke biner bash:
#!/bin/bash
-
Menggunakan
env
utilitas:#!/usr/bin/env bash
Keuntungan menggunakan pendekatan kedua adalah ia akan mencari bash
dapat dieksekusi di $PATH
pengguna variabel lingkungan. Jika ada lebih dari satu jalur ke bash
, yang pertama akan digunakan oleh skrip.
Saat menggunakan opsi pertama untuk menambahkan opsi ke pasokan shell Bash, berikan itu ke penerjemah. Misalnya, untuk menjalankan skrip dalam mode debug Anda akan menggunakan #!/bin/bash -x
.Jika Anda menggunakan env
metode maka Anda perlu menggunakan set
untuk mendeklarasikan opsi. Untuk mengaktifkan mode debug Anda akan menambahkan set -x
setelah garis shebang.
Contoh Skrip #
Mari kita buat skrip sederhana menggunakan shebang yang akan mencetak "Halo, Dunia". Buka editor teks Anda dan rekatkan baris berikut:
nano hello_world
hello_world#!/bin/bash
echo "Hello, World"
Untuk dapat menjalankan skrip tanpa menentukan penerjemah dari baris perintah, Anda harus membuat file tersebut dapat dieksekusi:
chmod +x hello_world
Sekarang jika Anda dapat menjalankan skrip dengan mengetik ./
diikuti dengan nama skrip:
./hello_world
Hello, World
Mengganti Shebang #
Jika karena alasan tertentu Anda ingin mengganti set interpreter di baris Shebang, Anda perlu menjalankan skrip dengan secara eksplisit menentukan shell yang diinginkan.
Misalnya untuk menjalankan skrip yang memiliki #!/bin/sh
ditentukan dalam baris Shebang menggunakan bash
shell yang akan Anda ketik:
bash hello_world
Harap dicatat, bukanlah ide yang baik untuk mengganti penerjemah shell karena dapat menyebabkan perilaku skrip yang tidak diharapkan.
Kesimpulan #
Sekarang Anda harus memiliki pemahaman yang baik tentang apa itu Shebang dan bagaimana menggunakannya dalam skrip Bash Anda.
Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.