GNU/Linux >> Tutoriels Linux >  >> Linux

Limite de ligne Shebang dans le noyau bash et linux

Si vous ne voulez pas recompiler votre noyau pour obtenir des lignes plus longues, vous pouvez écrire un wrapper :

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

puis exécutez le script comme :wrapper.sh script.sh


Limité à 127 caractères sur 99,9 % des systèmes en raison de la limite de temps de compilation du noyau.

Il est limité dans le noyau par BINPRM_BUF_SIZE , mis en include/linux/binfmts.h .


Linux
  1. Comment effacer l'historique de la ligne de commande BASH sous Linux

  2. Linux - Configurer, compiler et installer un noyau Linux personnalisé ?

  3. L'espace est-il autorisé entre # ! Et /bin/bash à Shebang ?

  4. Linux - Différence entre l'espace utilisateur et l'espace noyau ?

  5. 5 Achèvement standard disponible dans la ligne de commande Linux Bash

Le noyau Linux et ses fonctions

Gérer et surveiller les modules du noyau Linux avec Kmon

Installer le noyau Linux 4.15 dans les systèmes basés sur RPM et DEB

3 façons de vérifier la version du noyau Linux en ligne de commande

19 trucs et astuces utiles pour la ligne de commande Linux

Comment effacer l'historique de Bash sous Linux et Mac