写循环代码的时候,确实比较容易犯下面的错误:
错误
错误
错误
错误
错误
错误
错误
!"#$%
错误
这里主要两个问题:
使用命令展开时不带引号,其执行结果会使用
&'(
作为分隔符,拆分成参数传递给
循环
处理;
不应该让脚本去解析
命令的结果
")$
;
我们不能避免某些文件名中包含空格,
(
会对
展开的结果会被做单词拆分
*(+,"$
的处理。假设有一个文件,名字为
-./
012(2
,
循环处理的时候,会今次遍历文件名中的每个单词:
-33
./30
等等:
-
./
0
12
(2
比这更差的情况是,上面命令展开的结果可能被
(
进一步处理,比如文件名展开
"4$
。
比如,
执行的结果中包含
号,按照通配符的规则
3
号会被展开成当前目录下的所有文
件
5
67777777)7
)
评论