変数をすべての大文字にして多くのシェルスクリプトを実行していますが、私はいつもそれが深刻な誤解であると考えてきました。私の理解では、規約(たぶん昔は必然的に)によって、環境変数はすべて大文字です。正しいバッシュとシェルスクリプトの可変資本化
しかし、Bashのような最新のスクリプト環境では、テンポラリ変数の小文字名の方が常に好んでおり、大文字のものはのエクスポート(つまり環境)変数の場合のみです。たとえば、次のように常に物事が私の感想でした
#!/usr/bin/env bash
year=`date +%Y`
echo "It is $year."
export JAVA_HOME="$HOME/java"
。このアプローチに同意するか、または同意しない権威のある情報源がありますか、それとも純粋にスタイルの問題ですか?
+1。偶発的な上書きに関する良い点。私は言及を忘れていましたが、今言及したので、私は小文字を使用することに決めました。 – JasonSmith
大文字の変数名を使う主な理由は、シェルコマンドとの衝突を避けるためだと思いました。スクリプトは変数 'hostname'を使用していたので、私たちは最近、私たちのサーバのうちの1つのホスト名を誤って '='に変更しました。 – ThisSuitIsBlackNot
@ThisSuitIsBlack不可解なコードを無視して、変数が展開されていないときにコマンド名と混同できないところで、ドルを接頭辞として使用します。明らかに、hostname = mooを実行していると、問題が発生する可能性があります。小文字の「ホスト名」を使用しているわけではなく、正しい割り当て構文を使用していないためです。代入は、hostname = mooで行われ、空白はありません。正しいコードを仮定すると、コマンド名と衝突する変数名について心配する必要はありません。 – lhunath