Re: 問題ID:27946について
pancake
投稿数: 3
これは、「削除」の影響する範囲を、「envの環境下限定で見る」か、「envを発行する前と、envの効力が終わった後の環境下も含めて見る」かの違いなのではないでしょうか。
問題27946の実行例を実際にやってみるとわかるのですが、全部の実行例を実施した後、つまり、「env -u」も実行し、そのコマンドの効力が終了した後、「env -u」で指定した環境変数は残っています。その意味では「一時的」に削除ですね。
ただ、じゃあ、manが間違っているのか、というとそうではなく、「env -u」というコマンドを実行している環境内に立場を置いてみると、つまり「env -u 環境変数」というオプションを発行している間だけを見た場合は、指定された環境変数は「ずっと存在しない状態」、つまり「削除された状態」に見えると思います。
env自体が、もともと、どのオプションを指定しても「環境変数をある値に変更して実行」「その環境変数はenvの影響がなくなった後は元に戻る」動きだと思います。それが、manでいう「変更した環境でプログラムを実行する」ということではないでしょうか。
その「ある値」が、「存在しない」という値と同じだった場合、envの環境にある間は「削除」されている状態になる、ということだと思われるのですが。
ちなみに、「-i」オプションは、envの効力がある間は「何も設定されていない状態」、つまり「全ての変数が削除された状態」に変更していますが、envの効力がなくなった後は、やはり元に戻ります。言い方を変えると、「-u」は特定の変数だけ、「-i」は全部の環境変数を、いずれもenvの効力が効いている間だけ「削除」しているのではないでしょうか。
間違っていたらごめんなさい、実行例を実施してみた限りでは、そのように思えます。
問題27946の実行例を実際にやってみるとわかるのですが、全部の実行例を実施した後、つまり、「env -u」も実行し、そのコマンドの効力が終了した後、「env -u」で指定した環境変数は残っています。その意味では「一時的」に削除ですね。
ただ、じゃあ、manが間違っているのか、というとそうではなく、「env -u」というコマンドを実行している環境内に立場を置いてみると、つまり「env -u 環境変数」というオプションを発行している間だけを見た場合は、指定された環境変数は「ずっと存在しない状態」、つまり「削除された状態」に見えると思います。
env自体が、もともと、どのオプションを指定しても「環境変数をある値に変更して実行」「その環境変数はenvの影響がなくなった後は元に戻る」動きだと思います。それが、manでいう「変更した環境でプログラムを実行する」ということではないでしょうか。
その「ある値」が、「存在しない」という値と同じだった場合、envの環境にある間は「削除」されている状態になる、ということだと思われるのですが。
ちなみに、「-i」オプションは、envの効力がある間は「何も設定されていない状態」、つまり「全ての変数が削除された状態」に変更していますが、envの効力がなくなった後は、やはり元に戻ります。言い方を変えると、「-u」は特定の変数だけ、「-i」は全部の環境変数を、いずれもenvの効力が効いている間だけ「削除」しているのではないでしょうか。
間違っていたらごめんなさい、実行例を実施してみた限りでは、そのように思えます。
投稿ツリー
-
問題ID:27946について
(takashi0312, 2017-9-13 11:20)
-
Re: 問題ID:27946について
(pancake, 2017-9-15 2:04)
-
Re: 問題ID:27946について
(takashi0312, 2017-9-15 10:32)
- Re: 問題ID:27946について (arashi1977, 2017-9-15 11:36)
-
Re: 問題ID:27946について
(takashi0312, 2017-9-15 10:32)
-
Re: 問題ID:27946について
(pancake, 2017-9-15 2:04)