GNU/Linux >> Znalost Linux >  >> Linux

Chtěl bych uložit všechny argumenty příkazového řádku do skriptu Bash do jedné proměnné

echo "$*"

udělá to, co chcete, konkrétně vytiskne celé argumenty příkazového řádku oddělené mezerou (nebo technicky bez ohledu na hodnotu $IFS je). Pokud byste to chtěli uložit do proměnné, můžete to udělat

thevar="$*"

Pokud to dostatečně neodpovídá na vaši otázku, nejsem si jistý, co dalšího říct...


Pokud se nechcete podílet na $IFS, použijte [email protected] (nebo neuvádějte $* do uvozovek)

$ 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

Chování IFS se také řídí přiřazením proměnných.

$ 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

Všimněte si, že pokud by přiřazení k $IFS bylo provedeno po přiřazení $splatvar, pak by všechny výstupy byly stejné ($IFS by v příkladu "atsplat2" neměl žádný vliv).


Linux
  1. Předat argumenty příkazového řádku skriptu Bash?

  2. Jednoduchá závorka v přiřazení proměnné Bash?

  3. Proměnná Curl Outfile nefunguje ve skriptu Bash?

  1. Jak získat název aktuální větve git do proměnné v shell skriptu?

  2. Zkontrolujte, zda existuje proměnná v seznamu v Bash

  3. předání grepu do proměnné v bash

  1. Při ukládání výstupu kočky do proměnné jsou odstraněny všechny nové řádky

  2. Variabilní rozsah pro skripty bash shell a funkce ve skriptu

  3. Jak bash testuje „nepravdu“?