日本語解説: シェルスクリプトでの Yes/No/Cancel 入力 (代替方法)
Linux シェルスクリプトで Yes/No/Cancel 入力を受け取る方法
日本語解説:
Linuxのシェルスクリプトでユーザーに Yes/No/Cancel の選択肢を提供し、その入力を受け取る方法はいくつかあります。ここでは、一般的な方法を解説します。
readコマンドと条件分岐を使う
#!/bin/bash
echo "Yes/No/Cancel を選択してください:"
read choice
case "$choice" in
"Yes" | "yes")
echo "Yesが選択されました。"
;;
"No" | "no")
echo "Noが選択されました。"
;;
"Cancel" | "cancel")
echo "Cancelが選択されました。"
;;
*)
echo "無効な入力です。"
;;
esac
read choice
: ユーザーの入力を変数choice
に格納します。case
文:$choice
の値に基づいて、それぞれの選択肢に対する処理を実行します。
selectコマンドを使う
#!/bin/bash
PS3="Yes/No/Cancel を選択してください: "
select choice in "Yes" "No" "Cancel"
do
case "$choice" in
1)
echo "Yesが選択されました。"
break
;;
2)
echo "Noが選択されました。"
break
;;
3)
echo "Cancelが選択されました。"
break
;;
*)
echo "無効な入力です。"
;;
esac
done
select
コマンド: ユーザーに選択肢を表示し、番号を入力させることで選択を行います。break
: 選択された場合にループを終了します。
dialogコマンドを使う(インストールが必要)
#!/bin/bash
# dialogコマンドをインストールする必要がある
dialog --yesno "Yes/No/Cancel を選択してください" 10 30
if [ $? -eq 0 ]; then
echo "Yesが選択されました。"
elif [ $? -eq 1 ]; then
echo "Noが選択されました。"
else
echo "Cancelが選択されました。"
fi
dialog
コマンド: 簡易的なダイアログボックスを表示し、ユーザーの選択を受け取ります。$?
: コマンドの終了ステータスをチェックし、選択された選択肢を判断します。
日本語解説: シェルスクリプトでの Yes/No/Cancel 入力
シェルスクリプトでユーザーに Yes/No/Cancel の選択肢を提供し、その入力を受け取る方法
#!/bin/bash
echo "Yes/No/Cancel を選択してください:"
read choice
case "$choice" in
"Yes" | "yes")
echo "Yesが選択されました。"
;;
"No" | "no")
echo "Noが選択されました。"
;;
"Cancel" | "cancel")
echo "Cancelが選択されました。"
;;
*)
echo "無効な入力です。"
;;
esac
#!/bin/bash
PS3="Yes/No/Cancel を選択してください: "
select choice in "Yes" "No" "Cancel"
do
case "$choice" in
1)
echo "Yesが選択されました。"
break
;;
2)
echo "Noが選択されました。"
break
;;
3)
echo "Cancelが選択されました。"
break
;;
*)
echo "無効な入力です。"
;;
esac
done
#!/bin/bash
# dialogコマンドをインストールする必要がある
dialog --yesno "Yes/No/Cancel を選択してください" 10 30
if [ $? -eq 0 ]; then
echo "Yesが選択されました。"
elif [ $? -eq 1 ]; then
echo "Noが選択されました。"
else
echo "Cancelが選択されました。"
fi
#!/usr/bin/expect
spawn bash
expect "Yes/No/Cancel を選択してください:" {
send "Yes\n"
expect -re "Yesが選択されました"
}
expect "Yes/No/Cancel を選択してください:" {
send "No\n"
expect -re "Noが選択されました"
}
expect "Yes/No/Cancel を選択してください:" {
send "Cancel\n"
expect -re "Cancelが選択されました"
}
expect
コマンド: 対話型のプログラムと通信し、期待する出力を待ち、それに応じて入力を行うことができます。spawn bash
: 新しいシェルプロセスを起動します。expect
コマンド: 期待するプロンプトを待ち、それに応じて入力します。
#!/bin/bash
# zenityコマンドをインストールする必要がある
zenity --question --title="確認" --text="Yes/No/Cancel を選択してください"
if [ $? -eq 0 ]; then
echo "Yesが選択されました。"
elif [ $? -eq 1 ]; then
echo "Noが選択されました。"
else
echo "Cancelが選択されました。"
fi
#!/bin/bash
# whiptailコマンドをインストールする必要がある
whiptail --yesno "Yes/No/Cancel を選択してください" 10 30
if [ $? -eq 0 ]; then
echo "Yesが選択されました。"
elif [ $? -eq 1 ]; then
echo "Noが選択されました。"
else
echo "Cancelが選択されました。"
fi
linux bash shell