GNU/Linux >> Belajar Linux >  >> Linux

Batas garis Shebang di bash dan kernel linux

Jika Anda tidak ingin mengkompilasi ulang kernel untuk mendapatkan baris shebang yang lebih panjang, Anda dapat menulis pembungkus:

#!/bin/bash

if [[ $# -eq 0 ]]; then
    echo "usage: ${0##*/} script [args ...]"
    exit
fi

# we're going to expand a variable *unquoted* to use word splitting, but
# we don't want to have path expansion effects, so turn that off
set -f

shebang=$(head -1 "$1")
if [[ $shebang == '#!'* ]]; then
    interp=( ${shebang#\#!} )        # use an array in case a argument is there too
else
    interp=( /bin/sh )
fi

# now run it
exec "${interp[@]}" "[email protected]"

dan kemudian jalankan skrip seperti:wrapper.sh script.sh


Terbatas hingga 127 karakter pada 99,9% sistem karena batas buffer waktu kompilasi kernel.

Itu dibatasi di kernel oleh BINPRM_BUF_SIZE , atur di include/linux/binfmts.h .


Linux
  1. Perbedaan Antara ' Dan ” Di Command Line (bash)??

  2. Kelanjutan Baris Bash Setelah &&Dan || Didokumentasikan?

  3. menjalankan skrip php (fungsi php) di linux bash

  1. Cara Menghapus Riwayat Baris Perintah BASH di Linux

  2. Batas karakter baris perintah Linux

  3. Batasi bandwidth dan latensi masuk dan keluar di linux

  1. Linux – Mengonfigurasi, Mengkompilasi, dan Menginstal Kernel Linux Kustom?

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

  3. Linux – Perbedaan Antara Ruang Pengguna dan Ruang Kernel?