Bash

帶對話框的下載管理器

  • April 16, 2018

我正在嘗試使用對話框製作下載管理器,但我無法function view_history使用資訊框顯示下載歷史記錄 ( )。

Error: Expected no more than 3 tokens for --infobox, have 5.
Use --help to list options.

我的另一個問題:

我可以讓它工作,cat $HOME/dmlog.txt但由於我的腳本有許多明確的命令,我看不到 cat 命令的輸出而不滾動。有什麼想法我該怎麼做?我已經嘗試過 sleep 命令,但它看起來設計不佳。

–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
}


如果您想向使用者顯示一些資訊,請在 msgbox 或 infobox 中顯示資訊。您可以控制在使用者互動後應該啟動哪個菜單。

您可以在使用eval顯示您的消息後呼叫另一個操作。

${NextMenu}呼叫你想要的函式。變數 $NextMenu 儲存函式名稱的位置。

    InfoDialog(){

   MenuName="$1"
   InfoText="$2"
   NextMenu="$3"
   dialog --no-cancel --title "$MenuName" --msgbox "$InfoText" 20 50
   ${NextMenu}
}

與 Ye​​s/No Dialogs 相同,用於控制某些東西:

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**

引用自:https://unix.stackexchange.com/questions/437678