別のスクリプトを呼び出す非常に単純なスクリプトを作成しており、現在のスクリプトから実行中のスクリプトにパラメータを伝播する必要があります。
たとえば、私のスクリプト名は でfoo.sh
、 を呼び出しますbar.sh
。
foo.sh:
bar $1 $2 $3 $4
各パラメータを明示的に指定せずにこれを実行するにはどうすればよいですか?
ベストアンサー1
実際にパラメータを同じように渡したい場合は、"$@"
plain の代わりに を使用します。$@
観察する:
$ 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: