如果文件名有空格,那么ls赋值给变量,然后用for的时候,就会有问题。办法是设置IFS变量为换行,那么切割的时候,就按换行切割就能循环获得所有的文件名了。
1 2 3 4 5 6 7 | a=` ls -1` IFS=$ '\n' for b in $a ; do echo process "$b" ffmpeg -i "$b" -ss 00:00:03 -acodec copy "../music2/$b" &> /dev/null \ || echo failed done |