概要
シェルスクリプト(bash)でスクリプトを書く上で利便性の高い関数をまとめました。
CLI
色付きのecho
赤、青、黄の3種類を用意しておくと、エラー、メッセージ、警告と使い分けられます。
赤
エラーなどに使います。
function echo_r () {
echo -e "\033[1;31m$@\033[0;39m" >&2
return 0
}
青
経過表示などに使います。
function echo_b () {
echo -e "\033[1;36m$@\033[0;39m"
return 0
}
黄
警告などに使います。
function echo_y () {
echo -e "\033[0;33m$@\033[0;39m" >&2
return 0
}
ユーザの存在をチェック
存在するならtrue
しないならfalse
を返します。
function user_check () {
if [[ $(getent passwd $1 > /dev/null ; printf $?) = 0 ]]; then
true
else
false
fi
}
使い方
if user_check hoge; then
echo "ユーザーhogeは存在しています。"
else
echo "ユーザーhogeは存在していません。"
fi
補足
コメントで教えてもらいましたが、以下のようにもできるようです。
if文は長くなってしまいますが、全体の行数は減りますね。
if id hoge >/dev/null 2>&1; then
echo "ユーザーhogeは存在しています。"
else
echo "ユーザーhogeは存在していません。"
fi
GUI
シェルスクリプトでGUIを扱うにはzenity
を使います。
簡単なGUIフロントエンドはこれで十分実装できます。
ウィンドウの基本
下のスクリプトはこれを定義した上で使います。
function window () {
zenity \
--title="ウィンドウタイトル" \
--window-icon="ウィンドウアイコン" \
$@
}
経過
function info () {
window \
--info \
--width="$1" \
--height="$2" \
--text="$3"
}
使い方
info <横幅> <高さ> "文字列"
info 500 100 "処理が完了しました。"
注意
function warning () {
window \
--warning \
--width="$1" \
--height="$2" \
--text="$3"
}
使い方
warning <横幅> <高さ> "文字列"
warning 500 100 "デバッグモードです。"
エラー
function error () {
window \
--error \
--width="$1" \
--height="$2" \
--text="$3"
}
使い方
error <横幅> <高さ> "文字列"
error 500 100 "エラーが発生しました。"
ローディング
function loading () {
window \
--progress \
--auto-close \
--pulsate \
--width="$1" \
--height="$2" \
--text="$3"
}
使い方
<コマンド> | loading 500 100 "文字列"
sleep 5 | loading 500 100 "読み込み中です..."