GNU/Linux >> Tutoriales Linux >  >> Linux

Límite de línea de shebang en bash y kernel de linux

Si no desea volver a compilar su kernel para obtener líneas shebang más largas, puede escribir un contenedor:

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

y luego ejecute el script como:wrapper.sh script.sh


Limitado a 127 caracteres en el 99,9 % de los sistemas debido al límite del búfer de tiempo de compilación del kernel.

Está limitado en el kernel por BINPRM_BUF_SIZE , establecido en include/linux/binfmts.h .


Linux
  1. Linux:¿configurar, compilar e instalar un kernel de Linux personalizado?

  2. Continuaciones de línea Bash después de &&y || ¿Documentado?

  3. Linux:¿diferencia entre el espacio del usuario y el espacio del kernel?

  4. 5 Finalización estándar disponible en la línea de comandos de Linux Bash

  5. ejecutar script php (función php) en linux bash

Kernel de Linux y sus funciones

Administre y monitoree los módulos del kernel de Linux con Kmon

Instale Linux Kernel 4.15 en sistemas basados ​​en RPM y DEB

3 formas de comprobar la versión del kernel de Linux en la línea de comandos

19 consejos y trucos útiles para la línea de comandos de Linux

Cómo borrar el historial de Bash en Linux y Mac