












for filename in `ls`
do
echo $filename
done
原因:Shell 脚本中有个变量叫 IFS(Internal Field Seprator) ,内部域分隔符。默认是 space, tab, newline 来拆解读入的变量,然后对特殊字符进行处理,最后重新组合赋值给该变量。
对策:只需要重置改变量,用完以后记得还原变量。
IFS_old=$IFS; IFS=$'\n';for name in `ls`; do mv $name LW_$name; done; IFS=$IFS_old;
IFS_old=$IFS
IFS=$'\n'
for name in `ls`
do
mv $name LW_$name
done
IFS=$IFS_old
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。