在bash中向程序传递不确定数量的参数



我有一个用于缓冲的脚本(在下面的代码中,我将其设置为5000毫秒(,只是我不知道如何使用不确定数量的参数调用所需的python脚本。如何做到这一点?

编辑:

我已经更新了while循环中的if逻辑,以反映与参数的for循环一起工作的"破解",但我知道对此有一个单行解决方案。

注意:我想我可以循环使用$lines,创建一个字符串和eval((,但这看起来很难看注2:我是新手;在回答了主要问题之后,对整体编码的评论将受到赞赏。

#!/bin/bash
sent=0
interval=5000
lines=()
i=0;
while read line; do
lines[$i]=$line
((i++))
point=$(($(date +%s%N)/1000000));
if [ $((point-sent)) -gt $interval ]
then
cmd="php LineProcessor.py";
for arg in "${lines[@]}"
do
cmd="$cmd "$arg""
done
eval $cmd
sent=$point
# -- reset lines array --
i=0
lines=()
fi

done

因此,为了提供答案以及下面的注释,上面的正确行是:

python LineProcessor.py "${lines[@]}"

最新更新