アプリ版:「スタンプのみでお礼する」機能のリリースについて

export X=a は環境変数
set Y=b はシェル変数
を設定すると聞きました。

この二つは違うのでしょうか・・。
具体例があると助かります。

A 回答 (3件)

環境変数は、プロセス毎に異なるということで、


あるプロセスでset によって作った環境変数(シェル変数のこと)は、
そのままでは、他からは見ることができないが
set Y=b
した後に
export Y
(エクスポート:輸出?)してやると、サブ(呼び出した)プロセスからも使えるようになる
という感じでしょうか
    • good
    • 0

export X=b



は sh の拡張機能で、元々は

X=b; export X

です。X=b がシェル変数 X に値 b を代入すると言うものであり、export X はシェル変数 X を環境変数に設定するためのコマンドです。環境変数に設定すると、そこから呼ばれたプログラム (サブ・プログラム) もその変数 X の値を参照することができます (逆に言えば、export して環境変数に指定ないとサブ・プログラムからその変数 X の値を参照することはできません)。

なお、複数の変数をまとめて export することも可能です。

export X=b
export Y=c

は、

X=b; Y=c; export X Y

と書けます。

一方、

set Y=b

というのは csh でシェル変数を設定するためのコマンドです。csh の場合で環境変数を設定したい場合は、

setenv Y b

と書きます (Y と b の間に"="がないことに注意)。

なお、現在のシェルで設定されているシェル変数と環境変数は、それぞれ set、env コマンドで確認できます。
    • good
    • 1
この回答へのお礼

sub process に export できるシェル変数が環境変数、という漢字でしょうか。
ありがとうございます。

お礼日時:2006/03/01 17:29

sh,bashでは、


シェル変数=値
export 環境変数=値

csh,tcshでは、
set シェル変数=値
setenv シェル変数 値
です。
シェル変数はシェルの設定を変更したり、シェルスクリプトで変数に使ったりします。環境変数は、シェルから起動したコマンドの動作を変えたりします。

bashの例:
PS1='abc$ ' プロンプトを変更します。
for i in `set 20`;do echo $i;done ループの変数

date 日付は日本語形式で表示
export LC_TIME=C 日付表示形式をデフォルトにします
date 日付は英語形式で表示
    • good
    • 1
この回答へのお礼

例をありがとうございます。
よく分かった気がします。

お礼日時:2006/03/01 17:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!