Bash: read a file line-by-line and process each segment as parameters to other prog Bash: read a file line-by-line and process each segment as parameters to other prog bash bash

Bash: read a file line-by-line and process each segment as parameters to other prog


You can simplify this a lot:

while read file key log latdo  echo "$cmd" "$key" "$log" "$lat" "$file"done < "$input"


Using GNU Parallel you can do it in a single line + you get it done in parallel for free:

cat mapfile.txt | parallel --colsep '\s' prog {2} {3} {4} {1}

Watch the intro videos to learn more: http://www.youtube.com/watch?v=OpaiGYxkSuQ


prog could have disappeared because $cmd is not exported. Your version of /bin/sh might execute the while statement in a separate shell. This should not be the case, and this is not the case for my installation of bash, but perhaps yours behaves in interesting ways in this department.

UPD I see that you have several boxes that give the same results. This makes the subshell theory unlikely. Perhaps you have some funny characters in your script and/or source file.

I have copied and pasted your script and your source file to my gentoo box and it gives the expected results. Perhaps you should do the same, and compare the files with your original ones.