これは、case ステートメントの代替です。
bash/shell のif ステートメントを使用して、引数を指定してプログラムを開始/停止/再起動/アンインストールします。
#!/bin/bash
start_module() {
# Your start Code
}
stop_module() {
# Your stop Code
}
restart_module() {
# Your restart Code
}
uninstall_module() {
# Your uninstall Code
}
if [ $# != 1 ]; then # If Argument is not exactly one
echo "Some message"
exit 1 # Exit the program
fi
ARGUMENT=$(echo "$1" | awk '{print tolower($0)}') # Converts Argument in lower case. This is to make user Argument case independent.
if [[ $ARGUMENT == start ]]; then
start_module
elif [[ $ARGUMENT == stop ]]; then
stop_module
elif [[ $ARGUMENT == uninstall ]]; then
uninstall_module
elif [[ $ARGUMENT == restart ]]; then
restart_module
else
echo "Only one valid argument accepted: START | STOP | RESTART | UNINSTALL
case doesn't matter. "
fi
このコードを myScript.sh に保存します
Usage:
./myScript.sh Start
./myScript.sh Stop
./myScript.sh check
./myScript.sh uninstall
以下は、このスタイルの実行を具現化した実際のプログラムの例です。
補足:既存のモジュール/機能を省略したり、別のモジュールを追加したりするのは簡単です。
特定のモジュールを実行から除外/抑制する方法 (メンテナンスなど)?
そのモジュールは実行時に呼び出されないため、特定のモジュールをif ステートメント ブロックから削除すると無効になります。