vine-users ML アーカイブ



[vine-users:053831] Re: bash 起動時に環境変数 i だけが消えてしまう

  • From: ueda@xxxxxxxxxxxxxxxxxx
  • Subject: [vine-users:053831] Re: bash 起動時に環境変数 i だけが消えてしまう
  • Date: Fri, 27 Sep 2002 10:13:04 +0900
上田です。

>> 正確に言うと、 /etc/bashrc や /etc/profile のようにユーザが意識せずに
>> 使う(使ってしまう)スクリプトでは、できるだけユーザの環境変数やシェル変
>> 数を汚さないようにした方がよいと考えています。変ですか?

おおさと> 「bashrc や profile」ではなくて「bashrc」、「環境変数やシェル
おおさと> 変数」ではなくて「環境変数」と直すとその通りです。

なるほど。これには同意します。ちゃんと区別してませんでした。

おおさと> いや、だから bashrc 中では i は本来シェル変数として扱われる
おおさと> 意図なのに、それをユーザが勝手に環境変数に変更して bashrc に
おおさと> 意図しない作用をおこさせるのがまずいと言っているわけです。
おおさと> シェル変数として常用されやすい名前を環境変数にするなというこ
おおさと> とです。

おおさと> 商用 UNIX で開発していた経験からいえば、環境変数 i は自分の為
おおさと> にリザーブされていて当たり前だ、などという考えは我侭です。

これは、sh (それともLinux?) の使い方としての常識なのですか?
ごく一般のユーザ(初心者を含む)が環境変数 i を使うのがそんなにわがまま
なのでしょうか? 私にはそうは思えないのですが。

もしもそれが常識であるとしたら、私は以下のような方策を取ることになりま
す。

実は、私は、一般のユーザ(恐らくはそのような常識がないユーザ、特別にわ
がままと言うわけではない)が書くスクリプトを使うツールを構築しようとし
ているので、ユーザが困惑しないようにしたいと思っているのですが、とりあ
えず i,j,k だけはユーザが使わないようにマニュアルに明記するか、i,j,k 
だけは特別に別の手段で値を渡すようにします。

いや、大里さんの主張に従えば、そういう用途に環境変数を使うべきではない
と言うことですね?
大里さんの考える環境変数は私が考えているよりもずいぶんと限定的な用途の
物なのですね。

--HAL
========================================================================
(株)富士通研究所 ITコア研究所 ITアーキテクチャ研究部 上田晴康
E-mail: hal_ueda@xxxxxxxxxxxxxx
========================================================================