Shell脚本选择多个重复或退出

时间:2014-11-29 18:17:40

标签: linux shell select terminal case

我有这段代码:

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 个答案:

答案 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