基本に関する質問: スクリプトから起動されたプログラムの環境変数を調整しているときに、sh (実際には bash にリンクされているようです) でやや奇妙な動作になりました: 変数の設定がコマンド ライン パラメーターを台無しにしているようです。
誰かがなぜこれが起こるのか説明できますか?
簡単なスクリプト:
#! /bin/sh
# Messes with $1 ??
set ANT_OPTS=-Xmx512M
export ANT_OPTS
# Works
# export ANT_OPTS=-Xmx512M
echo "0 = $0"
echo "1 = $1"
これを上位の代替 (セット + エクスポート) で実行すると、結果は次のようになります。
$ ./test.sh foo
0 = ./test.sh
1 = ANT_OPTS=-Xmx512M
しかし、より低い選択肢 (輸出ストレート) では、結果は私が想定したとおりです。
$ ./test.sh foo
0 = ./test.sh
1 = foo
確かに論理的な説明はありますが、私はまだそれを理解していません。アイデアを持っている誰か?
br, トウコ