GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Shebang-Zeilenbegrenzung in Bash und Linux-Kernel

Wenn Sie Ihren Kernel nicht neu kompilieren möchten, um längere Shebang-Zeilen zu erhalten, können Sie einen Wrapper schreiben:

#!/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]"

und führen Sie dann das Skript wie folgt aus:wrapper.sh script.sh


Begrenzt auf 127 Zeichen auf 99,9 % der Systeme aufgrund der Kernel-Puffergrenze für die Kompilierungszeit.

Es wird im Kernel durch BINPRM_BUF_SIZE begrenzt , eingestellt in include/linux/binfmts.h .


Linux
  1. So löschen Sie den BASH-Befehlszeilenverlauf in Linux

  2. Unterschied zwischen ' und ' in der Befehlszeile (bash)??

  3. 5 Standardvervollständigung Verfügbar in der Linux Bash-Befehlszeile

  4. Zeichenbeschränkung für die Linux-Befehlszeile

  5. Begrenzen Sie die ein- und ausgehende Bandbreite und Latenz in Linux

Linux-Kernel und seine Funktionen

Verwalten und überwachen Sie Linux-Kernel-Module mit Kmon

Installieren Sie Linux Kernel 4.15 in RPM- und DEB-basierten Systemen

3 Möglichkeiten zum Überprüfen der Linux-Kernel-Version in der Befehlszeile

19 Nützliche Tipps und Tricks für die Linux-Befehlszeile

So löschen Sie den Bash-Verlauf in Linux und Mac