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