48638


例えば、以下を実行するとわかる通り、環境変数は必ずしも大文字でなくても動作します。

[code]

    $ hello=fuga sh -c 'echo $hello'
    fuga
    
[/code]

### 質問

大文字でない環境変数を利用することに、慣習に従っていない以上の技術的な問題はありますか？


CC BY-SA 4.0
2018-09-22T05:10:13.673
48637
2018-09-22T06:16:49.343
754
question
linux unix
大文字でない環境変数を利用することに問題はありますか


問題ないです。

### 仕様

仕様的には、

> The name space of environment variable names containing lowercase letters is
> reserved for applications.  
>  —— [Environment Variable
> Definition](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html)

とあり、小文字の環境変数はアプリケーション用に予約されているとのことなので、むしろ標準ツールが使用する環境変数との衝突を避けるという意味で使用が推奨されているとも読めます。

### 慣習

慣習的には、他のアプリケーションやユーザーに設定させて引き継ぐことを意図する環境変数には大文字を使い、それ以外には小文字を使うことが多いようです。書籍『UNIXプログラミング環境』には、

> 特別な意味をもつ変数は伝統的に大文字で綴るので、ユーザーの作る変数名は通常、小文字で書く。

とあり、小文字の変数を `export` して子プロセスに渡す例も出てきます。


CC BY-SA 4.0
2018-09-22T06:16:49.343
48638
2018-09-22T06:16:49.343
3054
48637
answer