web-dev-qa-db-ja.com

シェルスクリプトの変数には命名規則がありますか?

ほとんどの言語には変数の命名規則があり、シェルスクリプトで最も一般的なスタイルはMY_VARIABLE=fooです。これは慣習ですか、それともグローバル変数のみですか?スクリプトのローカル変数についてはどうですか?

128
Garrett Hall

オペレーティングシステム、シェルスタートアップスクリプト、またはシェル自体などによって導入される環境変数またはシェル変数は、通常すべてCAPITALSにあります。

独自の変数がこれらの変数と競合しないようにするには、lower_case変数名を使用することをお勧めします。

121
jippie

はい、bashには、変数名を含む完全なコードスタイルの規則があります。たとえば、Googleの シェルスタイルガイド は次のとおりです。

特に変数名の要約として:

変数名:小文字、単語を区切るアンダースコア付き。例:my_variable_name

ConstantsandEnvironment Variable Names:アンダースコアで区切られたすべての大文字の宣言ファイルの先頭。例:MY_CONSTANT

71
Anonsage

単語を分離するためのアンダースコアは、行くのに最適な方法のようです。
自由に選択できる場合、キャメルケースよりもsnake_caseを選択する理由がいくつかあります。

  1. 柔軟:大文字と小文字を使用できます(例:MY_CONSTANTおよびmy_variable);
  2. 一貫性:数字を分離して数値を読みやすくすることができ(例:1_000_000_000)、この機能は多くのプログラミング言語でサポートされています。
  3. 共通:正規表現\wがWordの文字や数字([a-zA-Z0-9_])などのアンダースコアを処理する時点で共通。
3
isar