いがぴょん的シェル・コーディング規約
シェルを書こうとして、どうやら 結構わからないことがあったので、簡単に整理しました。
ファイル
拡張子
- 「.sh」:実行対象のシェルのファイル拡張子は .sh とします。
- 「.sh」は必ず exit を呼び出すものとします。
- 「.env」:環境情報のファイル拡張子は .env とします。
- 「.env」は exit は呼び出さないこととします。
- 「. ./sample.env」 のように読み込みます。
- 「.fnc」:関数を含むファイル拡張子は .func とします。
- 「.fnc」は exit は呼び出さないこととします。
改行コード
- Linux で動作させるシェルについては LF 改行とします。
ソース
ソースヘッダー
JavaDoc 的な記法を採用します。
#!/bin/sh # @(#) sample.sh ver1.0 # # Usage: # sh ./sample.sh # # Description: # ○○処理バッチです。 # # @author いがぴょん # @version 1.0 2014-01-01 新規作成。 #####################################################################
インデント
半角空白 2 つとします。
変数・定数
- 定数は 大文字とします。readonly 宣言します。
- 変数は小文字から始まるキャメルケースとします。
- 変数・定数は ${VAR} のように {} で囲みます。ただし $? などについてのみ {} は利用しないこととします。
文字列リテラル
- 原則、シングルクオートを用います。
- 変数展開したい場合にのみ、ダブルクオートを用います。
ログ
syslog
以下のように定数宣言して利用することとします。
readonly LOGGER='/usr/bin/logger -t sample.sh -i' ${LOGGER} 'こんにちは世界。'
- プログラム名のところは適宜読み替えてください。
- 重要な処理である場合は、開始時と終了時をシスログ出力します。
算術演算
$(())形式を利用します。
echo $((3 * 2))