シェルスクリプトで環境変数を適用させるには[IS01][Linux]

android,Linuxで環境変数のexportを.bashrcなどに書き込まず、シェルスクリプトに書いて適用させる方法[IS01][Linux][Android]
4
猪田(小売希望価格55,650円) @inolabo

んー。シェルスクリプトって環境変数に影響できないんだっけ?

2010-11-27 00:21:33
かおりん@ @kaorin_linux

@inolabo 端末の中だけなら、大丈夫だし、別の端末で使いたきゃexportすりゃいんじゃね?

2010-11-27 00:23:23
超電磁ねこきっく @finalfusion

@inolabo シェルスクリプト内部で書きかえたのに変わってない? それならそういうものですが

2010-11-27 00:24:01
猪田(小売希望価格55,650円) @inolabo

@kaorin_linux exportしてるんですけどね、駄目ですw is01なんですけど。試しにやってみたらubuntuでも駄目でした

2010-11-27 00:26:27
かおりん@ @kaorin_linux

@inolabo シェルが違う?それともねこきっくさんの言うとおり、そういうものってこと?

2010-11-27 00:28:43
猪田(小売希望価格55,650円) @inolabo

@kaorin_linux is01もbashなんですけどね…。/に書き込む権限が奪取できないので.bashrcが書けず、手打ちなら通せるんですけど、打ち込むのが面倒なのでシェルスクリプトで…と思ったんですが出来ないみたいです

2010-11-27 00:30:25
トニートニー・とんにい @ton2xia

@inolabo スクリプト起動するシェルの環境変数は基本引きつがれるけど、スクリプト内で環境変数再定義されてると、そっちが優先されるかと。

2010-11-27 00:32:47
猪田(小売希望価格55,650円) @inolabo

@ton2xia 環境変数をシェルスクリプトで定義しようとしたんです。駄目でしたがw

2010-11-27 00:33:47
猪田(小売希望価格55,650円) @inolabo

お、これはどうだろう…? シェルスクリプトで環境変数を設定する - http://bit.ly/hSqvQ8

2010-11-27 00:36:11
猪田(小売希望価格55,650円) @inolabo

うむ。ubuntu では成功。ついでにだな、こいつをシェルスクリプトで実行できないかやってみる RT @inolabo: お、これはどうだろう…? シェルスクリプトで環境変数を設定する - http://bit.ly/hSqvQ8

2010-11-27 00:37:57
猪田(小売希望価格55,650円) @inolabo

んー無理か…まぁいいや。is01でも試してみる

2010-11-27 00:39:50
トニートニー・とんにい @ton2xia

@inolabo あー、もしかして、スクリプトを起動してる端末の環境変数を設定したいのかしら

2010-11-27 00:40:46
超電磁ねこきっく @finalfusion

@inolabo source で読み込むという手はありますが

2010-11-27 00:45:53
トニートニー・とんにい @ton2xia

@inolabo だと、スクリプト起動=端末で新しいシェルを起動してるから、環境変数は起動したシェル内でしか反映されないね。

2010-11-27 00:44:56
猪田(小売希望価格55,650円) @inolabo

@ton2xia ほうほう。sh -xで観てたら定義できてるのに、スクリプトが実行し終わると定義できていないのはそういうことなんですね! 勉強になりました

2010-11-27 00:46:30
猪田(小売希望価格55,650円) @inolabo

@finalfusion ちょうど今、試しているところです! ありがとうございます

2010-11-27 00:46:56
トニートニー・とんにい @ton2xia

@inolabo 起動している端末で反映させたいなら、コマンドラインでexport 分打ち込むか、 .bashrc もしくは .profile に書き込むと反映される。

2010-11-27 00:47:42
猪田(小売希望価格55,650円) @inolabo

@ton2xia 今弄ってるのがis01なんです。/に書き込みの権限がないので.bashrcは無理、export で毎回結構な長さの文を打つのが面倒なだったのでシェルスクリプトを書いていたのです

2010-11-27 00:49:13
トニートニー・とんにい @ton2xia

@inolabo シェル内でシェルを起動すると、そいつはサブシェルとして起動されるから、その中で設定した変数とかは、サブシェルの中でしか有効になりません。

2010-11-27 00:49:26
猪田(小売希望価格55,650円) @inolabo

@ton2xia ほうほう。サブシェルという言葉すら初耳ですーー;

2010-11-27 00:49:55
トニートニー・とんにい @ton2xia

これがわかりやすいかも。1. # a=A;echo $a

2010-11-27 00:51:56