web-dev-qa-db-ja.com

ダイアログ付きのダウンロードマネージャー

ダイアログ付きのダウンロードマネージャーを作成しようとしていますが、情報ボックスでダウンロード履歴(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コマンドを試しましたが、デザインが悪いようです。

1
mirkancal

-tailbox file height width "tail -f"コマンドのように、ダイアログボックスにファイルのテキストを表示します...

テキストファイルの表示とスクロールにはtextboxを使用します。

-テキストボックスファイルの高さ幅テキストボックスを使用すると、ダイアログボックスにテキストファイルの内容を表示できます。単純なテキストファイルビューアのようなものです。ユーザーは、ほとんどのキーボードで使用可能なカーソル、ページアップ、ページダウン、およびHOME/ENDキーを使用して、ファイル内を移動できます。行が長すぎてボックスに表示できない場合は、LEFT/RIGHTキーを使用して、テキスト領域を水平方向にスクロールできます...

ドキュメント: 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
}


ユーザーに情報を表示する場合は、メッセージボックスまたは情報ボックスに情報を表示します。ユーザーの操作後に開始するメニューを制御できます。

メッセージが eval で表示された後、別のアクションを呼び出すことができます。

${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**
0
Danloc