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