Unix shell 脚本 select 和 case 语句

Unix shell 脚本 select 和 case 语句

1)我想写这样的unix脚本

echo "Do u want to check application logs ???"
select opt in Yes No
    do
    case $opt in
    "Yes")
         commmands
     ;;
    "No")
    break
        ;;
    esac
    done

echo "Do u want to check non-application logs ???"
select opt in Yes No
    do
    case $opt in
    "Yes")
         commmands
     ;;
    "No")
    break
        ;;
    esac
    done

在执行第一部分之后,它退出并一次又一次地询问相同的事情,它不会进入另一部分,即非应用程序日志

2)是否可以在 unix shell 脚本中使用两个 select 和两个 case 语句,如果可以,请让我知道语法。

答案1

bash帮助中select

选择:选择名称 [in WORDS ... ;] 执行命令;完成
...
命令在每次选择后执行,直到执行中断命令

break您在那里拥有的命令是ing breakthe case,而不是select.您需要在块break之外放置一个case

例如:

echo "Do u want to check application logs ???"
select opt in Yes No
do
    case $opt in
    "Yes")
        commmands
        ;;
    esac
    break
done

另外,由于这case只有一个操作,您也可以使用if,但我将把它留给您。

相关内容