1、示例
function getDir() { for item in `ls $1` do fileName=$1"/"$item if [ -d $fileName ] then echo $fileName"是目錄" #getDir $fileName else echo $fileName"不是目錄" echoFile $fileName fi done } function echoFile() { fileName=$1 echo ${fileName##*.} if [ ! ${fileName##*.} = jar ] then echo $1"不是jar包" else echo $1"是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#*.}