从文件填充bash对话框菜单

时间:2018-02-22 09:44:13

标签: bash dialog

我正在使用基于对话框的UI的bash管道。我被困在我的一个管道步骤上,因为我需要从像

这样的CSV填充对话框菜单
item1;desc1
item2;desc2
item3;desc3

我在管道中使用的最后一个菜单是由以下代码构建的:

#For info : $INPUT is a path to a file, cleanExist is a custom function

function sourceMenu(){

    dialog  --clear --backtitle "1/4 Source des données" \
            --menu "Choix de la source de données :" 10 70 3 \
                Podcast "Un debat sur la douceur du pelage des panda roux" \
                Livre_audio "http://www.litteratureaudio.com/" \
                Url "Soyez imaginatif" 2> $INPUT

    valret=$?

    case $valret in
        0)  
            case `cat $INPUT` in
                Podcast) show_date;;
                Livre_audio) show_calendar;;
                Url) sourceUrlInput;;
            esac;;
        1)   
            cleanExit
    esac

}

1 个答案:

答案 0 :(得分:0)

我们假设文件 menus.csv 包含:

Podcast;"Un debat sur la douceur du pelage des panda roux"
Livre_audio;"http://www.litteratureaudio.com/"
Url;"Soyez imaginatif"

试试这个:

function sourceMenu(){

    while read item desc; do
        paires+=($item $desc)
    done < <(sed 's/;/\t/g' menus.csv) 

    dialog  --clear --backtitle "1/4 Source des données" \
            --menu "Choix de la source de données :" 10 70 3 \
                ${paires[*]} 2> $INPUT

    valret=$?

    case $valret in
        0)  
            case `cat $INPUT` in
                Podcast) show_date;;
                Livre_audio) show_calendar;;
                Url) sourceUrlInput;;
            esac;;
        1)   
            cleanExit
    esac
}