shell 获取当前目录下的jar文件
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#*.}