GNU/Linux >> Linux の 問題 >  >> Linux

Bash スクリプトへのすべてのコマンドライン引数を 1 つの変数に格納したい

echo "$*"

つまり、スペースで区切られたコマンドライン引数全体を出力します (または、技術的には $IFS の値は何でも) は)。変数に格納したい場合は、そうすることができます

thevar="$*"

質問に対する十分な回答が得られない場合は、他に何を言うべきかわかりません...


$IFS の関与を避けたい場合は、[email protected] を使用してください (または $* を引用符で囲まないでください)

$ 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

IFS の動作も変数の割り当てに従います。

$ 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

$IFS への割り当てが $splatvar の割り当て後に行われた場合、すべての出力が同じになることに注意してください ($IFS は「atsplat2」の例では効果がありません)。


Linux
  1. コマンドライン引数をBashスクリプトに渡しますか?

  2. Bash変数代入の単一括弧?

  3. Curl Outfile変数がBashスクリプトで機能しませんか?

  1. 現在のgitブランチの名前をシェルスクリプトの変数に取得する方法は?

  2. Bash のリストに変数が存在するかどうかを確認する

  3. grep を bash の変数に渡す

  1. Bash のスクリプト パラメータ

  2. 古いバージョンの Bash で Bash スクリプトをテストするにはどうすればよいですか?

  3. bashで(コマンド引数のように)引用符で文字列を分割する方法は?