GNU/Linux >> Belajar Linux >  >> Linux

Bash Shebang

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 - Menggunakan bash untuk mengurai file.
  • #!/usr/bin/env perl - Menggunakan env perintah untuk menemukan jalur ke perl dapat dieksekusi.
  • #!/usr/bin/python Mengeksekusi file menggunakan python 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.

  1. Menggunakan jalur absolut ke biner bash:

    #!/bin/bash
  2. 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.


Linux
  1. Skrip bash(I)

  2. Penerjemah Shell mana yang Menjalankan Skrip Tanpa Shebang?

  3. Banyak Argumen Di Shebang?

  1. Apakah Ruang Diizinkan Antara #! Dan /bin/bash Di Shebang?

  2. perintah ekspor bash

  3. Apa yang dilakukan -e dalam bash shebang?

  1. Menyortir dalam bash

  2. Batas garis Shebang di bash dan kernel linux

  3. Perbandingan tanggal di Bash