![如何从案例陈述中的案例循环回到原始选择菜单?](https://linux22.com/image/1631780/%E5%A6%82%E4%BD%95%E4%BB%8E%E6%A1%88%E4%BE%8B%E9%99%88%E8%BF%B0%E4%B8%AD%E7%9A%84%E6%A1%88%E4%BE%8B%E5%BE%AA%E7%8E%AF%E5%9B%9E%E5%88%B0%E5%8E%9F%E5%A7%8B%E9%80%89%E6%8B%A9%E8%8F%9C%E5%8D%95%EF%BC%9F.png)
a)
我有以下名为 q.txt 的 bash 脚本。我想运行带有 case 语句的 select 语句。如何在运行 case后重新显示菜单选项。在 case. /home/chh1/q.txt
之后不会运行。echo "a"
a)
我很清楚为什么这不起作用,但是在执行案例后有没有办法循环回到原始选择菜单?
#!/bin/bash
select x in a b c d
do
case $x in
a) echo "a"
. /home/chh1/q.txt;;
b) echo "b";;
c) echo "c";;
d) echo "You are now exiting the program"
break;;
*) echo "Invalid entry. Please try an option on display";;
esac
done
答案1
您可以添加由变量驱动的外循环。
#!/bin/bash
anew=yes
while [ "$anew" = yes ]; do
anew=no
select x in a b c d
do
case $x in
a) echo "a"
anew=yes
break;;
b) echo "b";;
c) echo "c";;
d) echo "You are now exiting the program"
break;;
*) echo "Invalid entry. Please try an option on display";;
esac
done
done
初始代码anew=yes
使while
循环至少执行一次。在循环内部,将变量设置为,然后执行no
稍微修改过的循环版本。思路是:当脚本退出循环时,变量应该是或,循环主体应该分别重复或不重复。案例只是将变量设置为并中断循环。select
select
yes
no
while
a
yes
select