GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo establecer parámetros cuando Pipe Bash Script to Bash?

Esta pregunta ya tiene respuestas aquí :Cómo pasar un argumento a un script que se ingresa a bash

(2 respuestas)
Cerrado hace 9 meses.

Cómo ejecutar bash script con parámetros:

./foo.sh a b c

Cuando está comprimido (por ejemplo, usando xz ).

 xzcat foo.sh | bash <<how_to_supply_here_parameters?>>

Caso de uso específico:

Produje un rmlint.sh muy grande archivo y almacenarlo comprimido:

time rmlint -o sh:stdout -c sh:hardlink|tee >( xz > rmlint.sh.xz )

Por lo tanto, normalmente ejecutaría

./rmlint.sh -d -x -p

Sin embargo, el archivo es demasiado grande para descomprimirlo. Por lo tanto, me encantaría hacer lo mismo canalizándolo a bash:

xzcat rmlint.sh.xz | bash ...

Respuesta aceptada:

Debes usar -s opción y -- para separar los argumentos que desea pasar:

echo 'echo "[email protected]"' | sh -s 3 4 5

echo 'printf "{%s}" "$0"; printf " {%s}" "[email protected]"; echo' |
    sh -s -- -d -x -p --foo=bar
{sh} {-d} {-x} {-p} {--foo=bar}

Esto debería funcionar con cualquier shell POSIX, no solo con bash . Desde susv4:

-s Leer comandos desde la entrada estándar.

Si no hay operandos y -c no se especifica la opción, el -s se asumirá la opción.


Linux
  1. ¿Cómo depurar un script Bash?

  2. ¿Cómo configurar Bash para ejecutar *.exe con Mono?

  3. ¿Cómo llamar a una función Bash en Bash Script dentro de Awk?

  4. ¿Incluir condicionalmente una etapa de tubería en un script Bash?

  5. Cómo dividir una cadena en Bash Script

Use este útil script de Bash cuando observe las estrellas

Cómo ejecutar un script Bash {7 métodos}

Cómo escribir un script Bash con ejemplos

Cómo ejecutar un script Bash

Cómo establecer la variable de entorno en Bash

¿Cómo verifico la sintaxis de un script Bash sin ejecutarlo?