带对话框的下载管理器

带对话框的下载管理器

我正在尝试制作带有对话框的下载管理器,但无法使用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**

相关内容