シェルスクリプト (Bash) で Yes / No を尋ねるアレを作る

この記事は Qiita からのお引越しです.

こういうやつ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ bash hogehoge.bash
スクリプトの説明
こんな感じのスクリプトを動かすよ? 良い? [y/n]: w
こんな感じのスクリプトを動かすよ? 良い? [y/n]: x
こんな感じのスクリプトを動かすよ? 良い? [y/n]: y
スクリプト実行中......done

$ bash hogehoge.bash
スクリプトの説明
こんな感じのスクリプトを動かすよ? 良い? [y/n]: n
OK. やめとこうか.

input_yesno 関数を作って好きなところに配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#!/bin/bash

function input_yesno() # 関数の宣言
{
    input_keyboard="xxx" # 変数の初期化
    # y か n が入力されたらループから脱出
    while [ ${input_keyboard} != 'y' ] && [ ${input_keyboard} != 'n' ]
    do
        read -p 'こんな感じのスクリプトを動かすよ? 良い? [y/n]: ' input_keyboard
    done
}

echo 'スクリプトの説明'
input_yesno # 関数の呼び出し
# y の場合の処理
if [ ${input_keyboard} = 'y' ]; then echo -e "スクリプト実行中......done\n"; fi
# n の場合の処理
if [ ${input_keyboard} = 'n' ]; then echo -e "OK. やめとこうか.\n"; fi
[ARTICLE: CC BY 4.0] [CODE BLOCK: CC0]
Built with Hugo
テーマ StackJimmy によって設計されています。