这里面使用ls命令一般会将文件名空格和分割空格混为一起,造成接下来的处理失败。
大家可以试试下面这个命令:
for i in *; do echo $i; done;
这个可以在命令行执行最简洁的方法。
下面是完整的Shell,可以写自己的处理函数,关键是$f,因为可能含有空格,使用"$f","$1",就会很安全,不会导致参数传递时被分割。
#!/bin/bash
function fileName(){
# echo $1
a=$1
}
function walkFolder(){
cd "$1"
pwd
for f in *
do
if [ -d "$f" ]
then
walkFolder "$f"
else
fileName $f
fi
done
cd ../
}
walkFolder $1
OK。
版权所有,转载请保留出处。