🕌
コマンド最短実行に便利なyesコマンド
Unix/Linux環境にて、コマンド実行途中で止められないようにする方法。
対話式の質問に対して、「yes」等の回答をする場合は、以下のような方法で省略可能。
-
# yes | "コマンド"
- yesを省略
-
# yes no | "コマンド"
- noを省略
-
# echo "1" | "コマンド"
- 1を省略※一度きり省略
実行確認
yesコマンド
- yesが入力されるまでループされるスクリプトを実行
# cat wait-yes.sh
#!/bin/bash
while true;do
echo -n "Yesが入力されるまで対話ループが続きます。"
read ANS
case $ANS in
[Yy] | [Yy][Ee][Ss] )
echo "Yes"
break
;;
* )
echo "Yes以外"
;;
esac
done
# yes |. ./wait-yes.sh
Yesが入力されるまで対話ループが続きます。Yes
- yesコマンドは「yes」以外も出力可能
# yes no
no
no
no
# yes xxx
xxx
xxx
xxx
echoコマンド
- yesに対応する番号が入力されるまでループされるスクリプトを実行
# cat wait-yes-number.sh
echo "Yesの番号が入力されるまで対話ループが続きます。"
select ANS in yes no
do
if [ "$ANS" = "yes" ]; then
echo $ANS
break
fi
done
# echo "1" |. ./wait-yes-number.sh
Yesの番号が入力されるまで対話ループが続きます。
1) yes
2) no
#? yes
- なお、selectの場合は、選択文を入力しても受け付けされない
# yes |. ./wait-yes-number.sh
Yesの番号が入力されるまで対話ループが続きます。
1) yes
2) no
#? #? #? #? #? #? #? #? #? #? #? #? #? #? #? #? #? ・・・【省略】
Discussion