关注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