![带对话框的下载管理器](https://linux22.com/image/131476/%E5%B8%A6%E5%AF%B9%E8%AF%9D%E6%A1%86%E7%9A%84%E4%B8%8B%E8%BD%BD%E7%AE%A1%E7%90%86%E5%99%A8.png)
我正在尝试制作带有对话框的下载管理器,但无法使用function view_history
信息框显示下载历史记录()。
Error: Expected no more than 3 tokens for --infobox, have 5.
Use --help to list options.
我的另一个问题:
我可以让它工作cat $HOME/dmlog.txt
,但由于我的脚本有许多明确的命令,如果不滚动我就看不到 cat 命令输出。有什么想法我该怎么做吗?我已经尝试过睡眠命令,但它看起来设计很糟糕。
答案1
--tailbox 文件高度宽度 在对话框中显示文件中的文本,如“tail -f”命令...
使用 atextbox
用于显示文本文件和滚动。
--textbox 文件高度 宽度 文本框允许您在对话框中显示文本文件的内容。它就像一个简单的文本文件查看器。用户可以使用大多数键盘上的光标、向上翻页、向下翻页和 HOME/END 键在文件中移动。如果行太长而无法在框中显示,可以使用向左/向右键水平滚动文本区域...
文档:https://linux.die.net/man/1/dialog
TextboxDialog() {
dialog "Example" --textbox "/PathTo/File.txt" 20 50
}
并且您在使用函数时遇到了一些问题。您忘记了()
并且还引用了文件路径""
所以你的函数应该是这样的:
function view_history() { dialog --textbox "$HOME/dmlog.txt" $HEIGHT $WIDTH }
如果您想向用户显示一些信息,请在消息框或信息框中显示该信息。您可以控制在用户交互后应启动哪个菜单。
您可以在显示消息后调用另一个操作评估。
${NextMenu}
调用你想要的函数。其中变量 $NextMenu 存储函数的名称。
InfoDialog(){
MenuName="$1"
InfoText="$2"
NextMenu="$3"
dialog --no-cancel --title "$MenuName" --msgbox "$InfoText" 20 50
${NextMenu}
}
与“是/否”对话框相同,用于控制某些东西:
YesNoDialog() {
MenuName="$1"
InfoText="$2"
NextMenu="$3"
dialog --yes-label "OK" --no-label "STOP" --defaultno --title "$MenuName" --yesno "$InfoText" 20 50
answer=$?
if [ $answer = 0 ]
then
${NextMenu}
else
MainMenu
fi
}
请记住在函数外部设置过度给定的变量,并使用这些变量调用函数。例子:
InfoDialog(){
MenuName="$1"
InfoText="$2"
NextMenu="$3"
dialog --no-cancel --title "$MenuName" --msgbox "$InfoText" 20 50
${NextMenu}
}
MenuName="$1"
InfoText="$2"
NextMenu="$3"
InfoErrorDialog $MenuName $InfoText $NextMenu**