У меня есть скрипт, который работает для буферизации (в приведенном ниже коде он установлен на 5000 миллисекунд), за исключением того, что я не знаю, как вызвать необходимый python скрипт с неопределенным числом аргументов. Как это можно сделать?
РЕДАКТИРОВАТЬ:
Я обновил if
logi c в while
l oop, чтобы отразить " взломать ", который работает с for
l oop аргументов, но я знаю, что есть решение в одну строку для этого.
ПРИМЕЧАНИЕ: я полагаю, что я мог бы l oop через $lines
, создайте строку и eval (), но это кажется уродливым. ПРИМЕЧАНИЕ 2. Я новичок в bash; комментарии по общему кодированию приветствуются после ответа на основной вопрос.
#!/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