Лучший вариант - это предварительное чтение файлов и хранение организованных результатов либо в массивах, либо во временных файлах. В противном случае вам придется вызывать функции чтения четыре раза на каждой итерации и заставлять функцию читать все дальше и дальше в файлах. Это далеко не оптимальный вариант.
Это версия для временных файлов. Осторожно, она не тестировалась.
PROG=./program
TEMPDIR=tmp
mkdir "$TEMPDIR"
# Create the temp files.
for arg in arg*.txt; do
i=0
while read a; do
((i++))
printf "%s\n" "$a" >> "$TEMPDIR"/"$i"
done < "$arg"
done
# Now the temp files are ready.
## Each file contains all arguments for 1 run of ./program,
## each of them on a separate line.
# Start executing the ./program.
for iteration in "$(ls "$TEMPDIR" | sort -n)"; do
unset args
while read arg; do
args=( "$arg" )
done < "$TEMPDIR"/"$iteration"
"$PROG" "${args[@]}"
done
# Finally, remove the temp files.
rm -r "$TEMPDIR"
zdump
принимает в качестве аргумента не имена путей, а имена часовых поясов.
Если вы используете zdump
задокументированным способом, ожидается, что он будет работать так, как задокументировано.
Это ожидаемое поведение.
Я думаю, вы имеете в виду следующее:
zdump -v /etc/localtime
localhost и localtime - это две совершенно разные вещи, хотя оба начинаются с local ... =)