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
.
Apakah (ditautkan secara statis) DLL menggunakan tumpukan yang berbeda dari program utama?
Seberapa stabil s3fs untuk memasang bucket Amazon S3 sebagai direktori lokal