Bash
帶對話框的下載管理器
我正在嘗試使用對話框製作下載管理器,但我無法
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”命令中一樣…
使用 a
textbox
顯示文本文件和滾動。–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} }
與 Yes/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**