1、示例
function getDir() {
for item in `ls $`
do
fileName=$"/"$item
if [ -d $fileName ]
then
echo $fileName"是目录"
#getDir $fileName
else
echo $fileName"不是目录"
echoFile $fileName
fi
done
} function echoFile() {
fileName=$
echo ${fileName##*.}
if [ ! ${fileName##*.} = jar ]
then
echo $"不是jar包"
else
echo $"是jar包"
fi
}
#在当前目录下查找sh脚本
for name in `find . -name *.sh`
do
echo ">>>>>>>>>>>>>>>$name"
if [ "${name##*.}"x = "sh"x ]
then
echo "是脚本"
fi
done dir="/home/fjw"
getDir $dir
2、附注
给定路径:
path=/home/test.tar.gz
echo ${path%/*} # 结果为/home 等效 dirname path
echo ${path##*/} # 结果为test.tar.gz 等效basename path
文件
file=${path##*/} # file为test.tar.gz
echo ${FILE%%.*} # 结果为test
echo ${FILE%.*} # 结果为test.tar
echo ${FILE##*.} # 结果为gz
echo ${FILE#*.} # 结果为tar.gz
说明:
取目录部分:${path%/*} (类似 dirname "$path")
取文件名称:file=${path##*/}(类似 basename "$path")
取最短基本名称:${file%%.*}
取最长基本名称:${file%.*}
取最短扩展名:${file##*.} 或者 ${path##*.}
取最长扩展名:${file#*.} 或者 ${path#*.}