gpt4 book ai didi

bash - 如何在whiptail中循环case语句

转载 作者:行者123 更新时间:2023-12-04 19:08:52 25 4
gpt4 key购买 nike

#!/bin/bash
function advancedMenu() {
ADVSEL=$(whiptail --title "Advanced Menu" --fb --menu "Choose an option" 15 60 4 \
"1" "Delete group" \
"2" "Create login name" \
"3" "Exit" 3>&1 1>&2 2>&3)
case "$ADVSEL" in
1)
echo "Option 1"
whiptail --title "Option 1" --msgbox "You chose group deleting. Exit status $?" 8 45
bash ./script3;;
2)
echo "Option 2"
whiptail --title "Option 1" --msgbox "You chose login name creating. Exit status $?" 8 45
bash ./script;;
3)
echo "Option 3"
whiptail --title "Option 1" --msgbox "You chose exit. Exit status $?" 8 45
;;
esac
}

advancedMenu

我不知道如何循环我的案例陈述。我这里有用户友好的界面。有人选择 1\2 或退出。 1 和 2 运行另一个脚本。因此,当单击 1 并完成脚本时,我需要返回主菜单,直到单击案例 3。我将不胜感激您的帮助!
#!/bin/bash
export NEWT_COLORS='
window=white,blue
border=white,green
textbox=white,green
button=black,white
'

{
for ((i = 0 ; i <= 100 ; i += 1)); do
sleep 1
echo $i
done

} | whiptail --gauge "Wait..." 6 60 0

touch 35_2.csv
while read line; do
IFS=","
set -- $line
group_name=$1
student_name=$2
student_name=`echo $student_name | tr -d '\r\n' `
login_name=`echo $student_name | sed 's/[b\`]//g;'`
login_name=`echo $login_name | sed 'y/абвгдеєзиіїйклмнопрстуфхь/abvgdeeziiijklmnoprstufh_/'`
login_name=`echo $login_name | sed 's/ /_/g; s/С†/ts/g; s/Р¶/zh/g; s/С‡/ch/g; s/С€/sh/g; s/С‰/sh/g; s/СЋ/yu/g; s/СЏ/ya/;'`
echo "$group_name, $student_name, $login_name" >> 35_2.csv
done < 35_2.csv

不要看错误的编码。你的决定似乎是正确的。第一个脚本运行然后菜单返回。但是,当我启动第二个脚本时,菜单不会返回。附上第二个脚本代码。

最佳答案

简单地说一个while环绕它。

#!/bin/bash
function advancedMenu() {
while :; do
ADVSEL=$(whiptail --title "Advanced Menu" --fb --menu "Choose an option" 15 60 4 \

"1" "Delete group" \
"2" "Create login name" \
"3" "Exit" 3>&1 1>&2 2>&3)
case "$ADVSEL" in
1)
echo "Option 1"
whiptail --title "Option 1" --msgbox "You chose group deleting. Exit status $?" 8 45
bash ./script3;;
2)
echo "Option 2"
whiptail --title "Option 1" --msgbox "You chose login name creating. Exit status $?" 8 45
bash ./script;;
3)
echo "Option 3"
whiptail --title "Option 1" --msgbox "You chose exit. Exit status $?" 8 45
return
;;
esac
done
}
advancedMenu

我不确定您的期望 Exit status $?以显示。 $?echo 的退出状态上一行的语句,所以它几乎总是 0 .

关于bash - 如何在whiptail中循环case语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62073412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com