我正在使用基于对话框的UI的bash
管道。我被困在我的一个管道步骤上,因为我需要从像
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
}
答案 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
}