关注shell2

1:可以把命令的输出结果当作一个字符串,必要时可以直接用在循环体中。
2:tr 'a-z' 'A-Z'` <<< $temp 可以把字符串的内容输给tr,也可以用管道temp=`echo $filename | tr 'A-Z' 'a-z'` 。
3:用find命令可以输出一个目录的所有文件和子目录及其文件


下面是将一个目录的所有文件和子目录及子目录的文件和子目录(递归)的名字都该为小写。

#!/bin/sh


change()
{
for filename in `ls`
do
temp=`echo $filename | tr 'A-Z' 'a-z'`
if [ $filename != $temp ];then
mv $filename $temp
fi

if [ -d $temp ];then
cd $temp
change $temp
cd ..
fi


done
return 0
}

temp=$1
if [ ! -d $temp ];then
echo "$temp is not a useful directory!"
exit 1
fi
cd $temp
change $temp

find *

exit 0

posted on 2011-10-25 13:23  hydah  阅读(164)  评论(0编辑  收藏  举报