GNU/Linux >> Linux Esercitazione >  >> Linux

Vorrei memorizzare tutti gli argomenti della riga di comando in uno script Bash in una singola variabile

echo "$*"

farebbe quello che vuoi, vale a dire stampare tutti gli argomenti della riga di comando, separati da uno spazio (o, tecnicamente, qualunque sia il valore di $IFS è). Se volessi memorizzarlo in una variabile, potresti farlo

thevar="$*"

Se questo non risponde abbastanza bene alla tua domanda, non sono sicuro di cos'altro dire...


Se vuoi evitare di coinvolgere $IFS, usa [email protected] (o non racchiudere $* tra virgolette)

$ 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

Anche il comportamento IFS segue le assegnazioni di variabili.

$ 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

Nota che se l'assegnazione a $IFS fosse effettuata dopo l'assegnazione di $splatvar, allora tutti gli output sarebbero gli stessi ($IFS non avrebbe alcun effetto nell'esempio "atsplat2").


Linux
  1. Passare gli argomenti della riga di comando allo script Bash?

  2. Come posso verificare se una variabile è un numero in Bash?

  3. Controlla se esiste una variabile in un elenco in Bash

  4. passando grep in una variabile in bash

  5. Parametri di script in Bash

Come memorizzare un comando Linux come variabile nello script della shell

Bash Beginner Series #3:Passare argomenti agli script Bash

Leggi riga per riga nello script bash

Come memorizzare un comando in una variabile in uno script di shell?

Simulazione della pressione del tasto INVIO nello script bash

Come posso testare il mio script Bash su versioni precedenti di Bash?