我有这段代码:
echo "Select"
select yn in "YES" "NO"; do
case $yn in
YES ) break;;
NO ) exit;;
esac
done
我想要做什么,是要求用户进行操作(select
),如果用户键入YES则执行YES(break
),如果用户键入NO,则执行NO (exit
)
我怎么能这样做?
答案 0 :(得分:3)
我不确定你要实现的目标,但是如果你想让菜单重复多次,请删除中断以便循环,如果你希望用户能够键入文字YES而不是数字1并让它执行,你需要捕获REPLY并考虑到这一点。
所以......把这两个放在一起,试试这个剧本:
#!/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