我想创建一个使用对话框的小程序来播放用脚本创建的日志文件。问题是,我无法获得一个动态单选列表,如果创建新的日志文件,该列表会自动添加一行。所以我知道我“只”需要使用一个if
循环,就像# for i in ...etc.
使用计数器来计数日志文件一样,但我无法让它工作。
这就是我现在所拥有的:
#!/bin/bash
COUNTER=1
for i in $( ls /mnt/home/$USER/shell_logs/*.log); do
echo $i $COUNTER
let COUNTER=COUNTER+1
done
我只需要让它与我的广播列表一起工作:
#! /bin/bash
COUNTER=1
for i in $( ls /mnt/home/$USER/shell_logs/*.log); do
let COUNTER=COUNTER+1
done
dialog --backtitle "Radiolist" \
--radiolist "test" 0 0 $COUNTER \
$COUNTER $i <-- This is the main problem
答案1
为了使其工作,您必须将列表条目添加到 for 循环内的变量中。例如:
#!/bin/bash
COUNTER=1
RADIOLIST="" # variable where we will keep the list entries for radiolist dialog
for i in /mnt/home/$USER/shell_logs/*.log; do
RADIOLIST="$RADIOLIST $COUNTER $i off "
let COUNTER=COUNTER+1
done
dialog --backtitle "Radiolist" \
--radiolist "test" 0 0 $COUNTER \
$RADIOLIST