我有这个密码:

echo "Select"
select yn in "YES" "NO"; do
case $yn in
YES ) break;;
NO ) exit;;
esac
done

即时消息要做的是,询问用户一些事情(select),如果用户键入yes,则执行yes的操作(break),如果用户键入no,则执行no的操作(exit
我该怎么做?

最佳答案

我不知道你想达到什么目的,但是如果你想让菜单重复多次,去掉中断,这样它就会循环,如果你想让用户能够输入一个文本是,而不是数字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

09-04 21:45