使用 for 循环从 shell 脚本在对话框中创建灵活的单选列表

使用 for 循环从 shell 脚本在对话框中创建灵活的单选列表

我想创建一个使用对话框的小程序来播放用脚本创建的日志文件。问题是,我无法获得一个动态单选列表,如果创建新的日志文件,该列表会自动添加一行。所以我知道我“只”需要使用一个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

相关内容