bash中for的文件通配符的问题
最近在整理自己的文档,还学了一点awk的操作,awk对文本的处理真是蛮强大的。
我需要经常用脚本来对一批文件处理。比如
aa$> for file in *.txt;do echo $file;done#结果可以正常显示
因为经常要用for命令的这种形式,于是写了一个脚本(allfiles):
1 2 3 4 5 6 |
|
然后在shell里输入:
aa@@@$: allfiles *.txt
结果确不正常,只有第一个文件被匹配,改来改去,发现原因:shell在处理命令行时已经自动把.txt* 替换成符合条件的列表了,所以产生问题。后来发现的办法是在文件上加中 '' 或者 ""**把文件名包含起来。
aa@aa$:allfiles '*.txt'