【bash】キー入力による処理の制御
bashでキーの入力内容によって処理を制御する方法です。
記載内容
①case文による制御
②if文による制御
③実行時刻による制御
②if文による制御
③実行時刻による制御
①case文による制御
- 3:終了 を選択するまで処理を繰り返します
#!/bin/bash while : do echo "処理番号を入力してください" echo "1:処理1" echo "2:処理2" echo "3:終了" read INPUT case "$INPUT" in "1" ) echo "処理1を実行します" ;; "2" ) echo "処理2を実行します" ;; "3" ) echo "終了します。" break ;; esac done exit 0
②if文による制御
- 該当する処理が選択された場合実行します
- 文字列の入力に対応するため -eq ではなく = を使って比較しています
- 空白やNullには対応できていないので注意してください
#!/bin/bash echo "処理番号を入力してください" echo "1:処理1" echo "2:処理2" read INPUT if [ ${INPUT} = 1 ]; then echo "処理1が選択されました" elif [ ${INPUT} = 2 ]; then echo "処理2が選択されました" else echo "該当する処理がありません" fi exit 0
③実行時刻による制御
- こちらはキー入力ではなく設定した時間による処理制御です
- 21時を過ぎているかどうかで処理を変えています
#!/bin/bash declare -i TIME=`date +%k` declare -i SETTIME=21 if [ ${TIME} -ge ${SETTIME} ]; then echo "${SETTIME}時を過ぎています" else echo "${SETTIME}時を過ぎていません" fi exit 0
参考書
リンク
最近のコメント