GNU/Linux >> Tutoriels Linux >  >> Linux

Je voudrais stocker tous les arguments de ligne de commande d'un script Bash dans une seule variable

echo "$*"

feriez ce que vous voudriez, à savoir afficher tous les arguments de la ligne de commande, séparés par un espace (ou, techniquement, quelle que soit la valeur de $IFS est). Si vous vouliez le stocker dans une variable, vous pourriez le faire

thevar="$*"

Si cela ne répond pas assez bien à votre question, je ne sais pas quoi dire d'autre...


Si vous voulez éviter d'avoir $IFS impliqué, utilisez [email protected] (ou ne mettez pas $* entre guillemets)

$ 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

Le comportement IFS suit également les affectations 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

Notez que si l'affectation à $IFS était effectuée après l'affectation de $splatvar, alors toutes les sorties seraient les mêmes ($IFS n'aurait aucun effet dans l'exemple "atsplat2").


Linux
  1. Comment tester si une variable est un nombre dans Bash ?

  2. Linux bash :affectation de plusieurs variables

  3. Simulation de la touche ENTRÉE dans le script bash

  4. Vérifier si une variable existe dans une liste dans Bash

  5. passer grep dans une variable bash

Comment stocker une commande Linux en tant que variable dans un script shell

Bash Beginner Series #3 :Passer des arguments aux scripts Bash

Lire ligne par ligne dans le script bash

Comment stocker une commande dans une variable dans un script shell ?

Toutes les nouvelles lignes sont supprimées lors de l'enregistrement de la sortie cat dans une variable

Comment bash teste-t-il 'faux'?