[Bash] Snippets
よく使うもの
シバン
スクリプトディレクトリの取得
SCRIPT_DIR=$(cd $(dirname $(readlink $0 || echo $0));pwd)
検査系
Utility
# Usageを表示して処理終了
function usage_exit() {
echo "Usage: `basename $0` dierctory" 1>&2
exit 1
}
# エラーメッセージを表示して処理終了
function error_exit() {
echo "[ERROR] $1"
exit 1
}
# コマンドが利用できるかの確認
function can_use() {
type -p $1 || error_exit "Unable to find $1, please install it and run this script again"
}
複雑名引数指定
while getopts g:c:s:v opt
do
case $opt in
g) GROUP=$OPTARG
;;
s) SERVERS=$OPTARG
;;
c) CMD=$OPTARG
;;
v) VERBOSE=true
;;
\?) usage_exit
;;
esac
done
# 組み合わせによるバリデーション
[ -z $GROUP ] && [ -z "$SERVERS" ] && usage_exit
[ $GROUP ] && [ "$SERVERS" ] && usage_exit
[ -z "$CMD" ] && usage_exit
引数が1つでない場合にNG
if [ $# -ne 1 ]; then
usage_exit
fi