誰かがこれら2つの変数の違いを簡潔に説明できますか?
変数を他のプログラムに渡す最も安全な方法は何ですか?
例えば
#! /bin/bash
# do stuff
# pass variables onto another program
java $@
ベストアンサー1
次のスクリプトを使用してください。
#! /bin/sh
# Greg Wooledge's args script
printf "%d args:" $#
printf " <%s>" "$@"
echo
このデモを試してください。
$ set -- a 'b c' d
$ args $*
4 args: <a> <b> <c> <d>
$ args $@
4 args: <a> <b> <c> <d>
$ args "$*"
1 args: <a b c d>
$ args "$@"
3 args: <a> <b c> <d>
通常(引用符を含む)を使用する必要があります"$@"
。
時には、IFS
以下を変更して使用するのが便利です"$*"
。
$ saveIFS=$IFS; IFS='|'; args "$*"; IFS=$saveIFS
1 args: <a|b c|d>