2
変数の割り当ては現在実行中のシェルに影響します
いくつかのコードを書いているとき、私はこの行を見つけました: $ TZ="America/Los_Angeles" date; echo "$TZ" Thu Dec 24 14:39:15 PST 2015 「ロサンゼルス」での実際の時間を正しく示し、変数の値がTZ保持されないこと。期待どおりすべて。 ただし、この行では、一部の形式を日付に展開し、基本的に同じことを実行するため、TZの値が保持されます。 TZ="America/Los_Angeles" eval date; echo "$TZ" Thu Dec 24 14:41:34 PST 2015 America/Los_Angeles さらにいくつかのテストを行った結果、これが一部のシェルでのみ発生することがわかりました。ダッシュ、kshでは発生しますが、bashやzshでは発生しません。 Q 質問は次のとおりです。 TZの値が現在のシェルで保持されているのはなぜですか? それをどのように回避/制御できますか(可能な場合)? 追加。 次の2行を使用して、いくつかのシェルでテストを実行しました。 myTZ="America/Los_Angeles" unset TZ; { TZ="$myTZ" date; } >/dev/null; echo -n " direct $TZ" unset TZ; { TZ="$myTZ" …