2017-08-25 11 views
0

私は、使用する非常に特定の設定で渡された画像の作成と復元を簡単にするために、ncurses/dialog駆動型対話型シェルスクリプトをClonezillaに組み立てています。毎回。スクリプトの一部は、復元のためにイメージを選択するようユーザーに求め、私は壁に当たった。bash:ダイナミックファイルからncursesダイアログラジオリストを作成し、変数を選択して出力

この部分にはダイアログラジオリストを使用して、利用可能な画像のリストから1つの画像ファイルのみを選択できるようにしたいと考えています。私はその場で画像のリストを作成し、ファイルに保存し

.clone_images_listと呼ばれる私はほとんどそこにすべての方法だ、ユーザーがファイル名を選択したときに、私はすべてがそれを除いて働いてきた、それはライン出力しますファイル名の代わりに番号。私は、私が成功することができると思うすべてを試しました。

これは私が今までに持っているものです:
です。ここで

#! /bin/bash 

COUNT=1 
IMAGELIST="" 
while read i; do 
    IMAGELIST="$IMAGELIST $COUNT $i off" 
    let COUNT=COUNT+1 
done < .clone_images_list 

dialog --backtitle "Available Image List" \ 
--radiolist "Select Image To Restore" 0 0 $COUNT \ 
$IMAGELIST 2> .tempfile 

IMAGEFILE=`cat .tempfile` 
echo $IMAGEFILE 

は私.clone_images_listは、次のようになります。このリストは長くても短くてもよい

channel1.170822104015.img 
channel2.170822181523.img 
channel3.170822180559.img 
host.170822160320.img 
host.170822174917.img 

と更新いつでも新しいイメージが作成されています。

私のスクリプトを動作させるには、実際のファイル名を後でスクリプトで使用できる変数に入れる必要があります。いくつかのアイデアを探して

....

答えて

1

radiolistウィジェットは、(最初​​の列)で選択タグを返します。このライン

IMAGELIST="$IMAGELIST $COUNT $i off" 

あなたは数にタグフィールドを設定しているに

。あなたは

IMAGELIST="$IMAGELIST $i $i off" 

にあることを変更した場合は、その後タグには、ファイル名になります。

これを行うと、--no-tagsオプションが役立ちます。そうしないと、ウィジェットはファイル名を2度表示するため、便利です。

+0

トーマス - それは私がそれが必要な方法を正確に働いた、ありがとう! – Richard

関連する問題