GNU/Linux >> Tutoriales Linux >  >> Linux

Me gustaría almacenar todos los argumentos de la línea de comandos en un script Bash en una sola variable

echo "$*"

haría lo que quisiera, es decir, imprimir los argumentos completos de la línea de comandos, separados por un espacio (o, técnicamente, cualquiera que sea el valor de $IFS es). Si quisiera almacenarlo en una variable, podría hacerlo

thevar="$*"

Si eso no responde a su pregunta lo suficientemente bien, no estoy seguro de qué más decir...


Si quiere evitar tener $IFS involucrado, use [email protected] (o no incluya $* entre comillas)

$ cat atsplat
IFS="_"
echo "     at: [email protected]"
echo "  splat: $*"
echo "noquote: "$*

$ ./atsplat this is a test
     at: this is a test
  splat: this_is_a_test
noquote: this is a test

El comportamiento de IFS también sigue las asignaciones de variables.

$ cat atsplat2
IFS="_"
[email protected]
splatvar=$*
echo "     at: $atvar"
echo "  splat: $splatvar"
echo "noquote: "$splatvar

$ ./atsplat2 this is a test
     at: this is a test
  splat: this_is_a_test
noquote: this is a test

Tenga en cuenta que si la asignación a $IFS se realizó después de la asignación de $splatvar, todas las salidas serían las mismas ($IFS no tendría ningún efecto en el ejemplo "atsplat2").


Linux
  1. ¿La variable Curl Outfile no funciona en Bash Script?

  2. ¿Cómo pruebo si una variable es un número en Bash?

  3. Leer línea por línea en bash script

  4. ¿Cómo almacenar un comando en una variable en un script de shell?

  5. Simulando la pulsación de la tecla ENTER en el script bash

Cómo almacenar un comando de Linux como una variable en el script de Shell

Bash Beginner Series #3:Pasando Argumentos a Bash Scripts

Comprobar si existe una variable en una lista en Bash

Todas las líneas nuevas se eliminan al guardar la salida cat en una variable

Alcance variable para scripts y funciones bash shell en el script

¿Cómo prueba bash 'falso'?