I am not sure I understand what you mean. Word-splitting is performed by the "for x in y" construct, using the IFS variable, so by default if you have a file called "foo bar.mp4" the command line from the article:
for i in *.mp4; do ffmpeg -i "$i" "${i%.mp4}.mp3"; done
will result in executing:
ffmpeg -i foo foo.mp3
ffmpeg -i bar.mp4 bar.mp3
Which is obviously not what was meant. So it's a good habit to learn to loop over files in a directory in a different way.
Comments
I am not sure I understand what you mean. Word-splitting is performed by the "for x in y" construct, using the IFS variable, so by default if you have a file called "foo bar.mp4" the command line from the article:
will result in executing: Which is obviously not what was meant. So it's a good habit to learn to loop over files in a directory in a different way.Maybe you are confusing this with what happens when you do
or similar. In that case, the output of `find` is indeed split first, and `for` sees "foo", "bar.mp4", and so on.Ah yes, you are right, thanks!
Perhaps you have a very broken shell.