1. ホーム
  2. bash

[解決済み] bashシェルスクリプトの全引数を伝搬させる

2022-03-21 13:18:08

質問

別のスクリプトを呼び出す非常に単純なスクリプトを書いているのですが、現在のスクリプトから実行中のスクリプトにパラメータを伝播させる必要があります。

例えば、私のスクリプト名は foo.sh を呼び出し bar.sh

foo.shです。

bar $1 $2 $3 $4

各パラメータを明示的に指定しないで行うにはどうしたらよいでしょうか?

どのように解決するのですか?

使用方法 "$@" の代わりに $@ 実際にパラメータを同じように渡したい場合。

観察してください。

$ cat no_quotes.sh
#!/bin/bash
echo_args.sh $@

$ cat quotes.sh
#!/bin/bash
echo_args.sh "$@"

$ cat echo_args.sh
#!/bin/bash
echo Received: $1
echo Received: $2
echo Received: $3
echo Received: $4

$ ./no_quotes.sh first second
Received: first
Received: second
Received:
Received:

$ ./no_quotes.sh "one quoted arg"
Received: one
Received: quoted
Received: arg
Received:

$ ./quotes.sh first second
Received: first
Received: second
Received:
Received:

$ ./quotes.sh "one quoted arg"
Received: one quoted arg
Received:
Received:
Received: