Linux 选择多个重复或退出的Shell脚本
我有以下代码:Linux 选择多个重复或退出的Shell脚本,linux,shell,select,terminal,case,Linux,Shell,Select,Terminal,Case,我有以下代码: echo "Select" select yn in "YES" "NO"; do case $yn in YES ) break;; NO ) exit;; esac done 我试图做的是询问用户一些事情(选择),如果用户键入YES,则执行YES操作(中断),如果用户键入NO,则执行NO操作(退出) 我该怎么做呢?我不知道你想实现什么,但如果你想让菜单重复多次,请删除中断,这样它就会循环。如果你想让用户能够键入文字“是”,而不是数字“1”,并让它执行,你需要捕捉回复并将其考
echo "Select"
select yn in "YES" "NO"; do
case $yn in
YES ) break;;
NO ) exit;;
esac
done
我试图做的是询问用户一些事情(选择),如果用户键入YES,则执行YES操作(中断
),如果用户键入NO,则执行NO操作(退出
)
我该怎么做呢?我不知道你想实现什么,但如果你想让菜单重复多次,请删除中断,这样它就会循环。如果你想让用户能够键入文字“是”,而不是数字“1”,并让它执行,你需要捕捉回复并将其考虑在内
所以。。。要将这两者结合起来,请尝试以下脚本:
#!/bin/bash
repeat() {
echo "Repeating";
}
end() {
echo "Exit";
exit;
}
echo "Select"
select yn in "YES" "NO"; do
if [[ -z "$yn" ]]; then
# user entered text instead of the number
yn="$REPLY"
fi
case $yn in
YES )
repeat
;;
NO )
end
;;
* )
echo -e "Sorry, \"${yn}\" is not supported.\nTry again."
;;
esac
done
我试过了,它说:Select proba1.sh:10:proba1.sh:Select:not found proba1.sh:11:proba1.sh:[[:not found-e Sorry],“不受支持。请重试。proba1.sh:26:proba1.sh:语法错误:“完成”出乎意料的奇怪,你运行的是哪个版本的bash?我把它复制粘贴到bsd和linux上的一个脚本中,然后它就工作了。也许那里的新行有点奇怪,试着从那里得到它,第10行的选择与你的脚本中的相同。GNU bash,版本4.3.11(1)-发布(x86_64-pc-linux-GNU)您试图解决的问题是什么?是重复还是可以输入文本?顺便说一句,我就是这样测试的,不确定您的方法是否不同: