Я пытаюсь зациклить вывод команды, которая выплевывает строки, разделенные \n вместо внутреннего разделителя полей bash. У меня есть обходной путь, который временно меняет IFS на \n:
timestamps=$(somefortranprogram someinputfile)
OIFS="${IFS}"
NIFS=$'\n'
IFS="${NIFS}"
for timestamp in $timestamps
do
IFS="${OIFS}"
<things to do in loop>
IFS="${NIFS}"
done
Вывод программы на фортране имеет вид:
June 27, 1989 00 UTC (+ 00 Hrs)
June 27, 1989 03 UTC (+ 00 Hrs)
June 27, 1989 06 UTC (+ 00 Hrs)
June 27, 1989 09 UTC (+ 00 Hrs)
June 27, 1989 12 UTC (+ 00 Hrs)
June 27, 1989 15 UTC (+ 00 Hrs)
June 27, 1989 18 UTC (+ 00 Hrs)
... что бы хорошо работать, чтобы зацикливать метки времени по каждой строке, за исключением того, что bash зацикливается на пробелах и, таким образом, проходит через каждое слово. Есть ли лучший способ сделать это, который не требует временного изменения $ IFS?