请问linux的dialog设计对话框不同的对话框可以嵌套吗?如果可以的话怎么嵌套呢?

发布于 2022-09-04 01:36:44 字数 2092 浏览 8 评论 0

比如下面这段shell脚本代码的各个对话框都是彼此独立的,我想把它们一起放到一个大对话框离里去,但不知道怎么弄:

/bin/bash

yesno()
{

dialog --title "First screen" --backtitle "Test Program" --clear --yesno \
    "Start this test program or not ? \nThis decesion have to make by you." 16 51

# yes is 0, no is 1 , esc is 255
result=$?
if [ $result -eq 1 ] ; then
    exit 1;
elif [ $result -eq 255 ]; then
    exit 255;
fi

username;

}

username()
{

cat /dev/null >/tmp/test.username
dialog --title "Second screen" --backtitle "Test Program" --clear --inputbox \
"Please input your username (default: hello) " 16 51 "hello" 2>/tmp/test.username

result=$?
if [ $result -eq 1 ] ; then
    yesno;
elif [ $result -eq 255 ]; then
    exit 255;
fi

password;

}

password()
{

cat /dev/null >/tmp/test.password
dialog  --insecure --title "Third screen" --backtitle "Test Program" --clear --passwordbox \
    "Please input your password (default: 123456) " 16 51 "123456" 2>/tmp/test.password

result=$?
if [ $result -eq 1 ] ; then
    username;
elif [ $result -eq 255 ]; then
    exit 255;
fi

occupation;

}

occupation()
{

cat /dev/null >/tmp/test.occupation
dialog --title "Forth screen" --backtitle "Test Program" --clear --menu \
    "Please choose your occupation: (default: IT)" 16 51 3 \
    IT "The worst occupation" \
    CEO "The best occupation" \
    Teacher "Not the best or worst"  2>/tmp/test.occupation

result=$?
if [ $result -eq 1 ] ; then
    password;
elif [ $result -eq 255 ]; then
    exit 255;
fi

finish;

}

finish()
{

dialog --title "Fifth screen" --backtitle "Test Program" --clear --msgbox \
    "Congratulations! The test program has finished!\n Username: $(cat /tmp/test.username)\n Password: $(cat /tmp/test.password)\n Occupation: $(cat /tmp/test.occupation)" 16 51

result=$?
if [ $result -eq 1 ] ; then
    occupation
elif [ $result -eq 255 ]; then
    exit 255;
fi

}

yesno;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文