239

変数がすべて大文字のシェル スクリプトをたくさん見かけますが、これには重大な誤解があるといつも思っていました。私の理解では、慣例により (そしておそらくずっと前に必然的に)、環境変数はすべて大文字になっています。

しかし、Bash のような最新のスクリプト環境では、一時変数には小文字の名前を使用し、エクスポートされた (つまり環境) 変数には大文字のみを使用するという規則を常に好んでいました。例えば:

#!/usr/bin/env bash
year=`date +%Y`
echo "It is $year."
export JAVA_HOME="$HOME/java"

それが常に私の物事に対する見方でした。このアプローチに同意または反対する信頼できる情報源はありますか、それとも純粋にスタイルの問題ですか?

4

8 に答える 8

319

慣例により、環境変数 ( PAGEREDITOR、 ...) および内部シェル変数 ( SHELLBASH_VERSION、 ...) は大文字で表記されます。他のすべての変数名は小文字にする必要があります。

変数名は大文字と小文字が区別されることに注意してください。この規則により、誤って環境変数と内部変数をオーバーライドすることが回避されます。

この規則に従えば、上書きを避けるために、UNIX ツールやシェルで使用されるすべての環境変数を知る必要がないので安心できます。それが変数の場合は、小文字にします。エクスポートする場合は、大文字にします。

于 2009-03-23T15:53:24.170 に答える
7

私はあなたがすることをします。信頼できる情報源があるとは思えませんが、かなり広く普及している事実上の標準のようです。

于 2009-03-23T11:36:39.340 に答える
3

それは非常に広く開催されている慣習であり、「信頼できる」情報源があるとは思えません。

于 2009-03-23T11:36:21.230 に答える
2

環境変数とグローバル変数の両方に ALL_CAPS を使用する傾向があります。もちろん、Bash には実際の変数スコープがないため、変数のかなりの部分がグローバル (主に設定と状態の追跡) として使用され、「ローカル」 (カウンター、イテレーター、部分的に構築された文字列、一時変数) は比較的少数です。

于 2009-03-23T11:59:34.870 に答える