for的问题。
来源: 互联网 发布时间:2015-03-06
本文导语: 有一个script, for file in `cat filelist` do ls $file done 我想请问一下,如果filelist文件中列出的文件名中含有空格, for语句能够正确工作吗?如果无法正常工作,那有什么解决方案吗? | ...
有一个script,
for file in `cat filelist`
do
ls $file
done
我想请问一下,如果filelist文件中列出的文件名中含有空格,
for语句能够正确工作吗?如果无法正常工作,那有什么解决方案吗?
for file in `cat filelist`
do
ls $file
done
我想请问一下,如果filelist文件中列出的文件名中含有空格,
for语句能够正确工作吗?如果无法正常工作,那有什么解决方案吗?
|
要想每次读一行,必须用
cat file_name | while read FILE
do
...
done
的形式,用 file in `cat filelist`的形式如果有空格,就会被空格分割成多个字符串。
cat file_name | while read FILE
do
...
done
的形式,用 file in `cat filelist`的形式如果有空格,就会被空格分割成多个字符串。
|
当然,有个前提,那就是文件filelist里面每一行都只包含一个文件。
如果有多个文件,而又能够确定没有任何文件名称是含有空格的,那就采用你的方法。
(ls后面是可以跟多个文件名称的。)
如果有多个文件,而又能够确定没有任何文件名称是含有空格的,那就采用你的方法。
(ls后面是可以跟多个文件名称的。)
|
awk '{system("ls " $0)}' filelist
|
那因该算两个文件。
不管怎样,for肯定能工作。
不管怎样,for肯定能工作。