The word is expanded to produce a pattern just as in pathname expansion. If the pattern matches the
beginning of the value of parameter, then the result of the expansion is the expanded value of parameter
with the shortest matching pattern (the ''#'' case) or the longest matching pattern (the ''##'' case)
deleted. If parameter is @ or *, the pattern removal operation is applied to each positional parameter
in turn, and the expansion is the resultant list. If parameter is an array variable subscripted with @
or *, the pattern removal operation is applied to each member of the array in turn, and the expansion is
the resultant list.
${parameter%word}
${parameter%%word}
The word is expanded to produce a pattern just as in pathname expansion. If the pattern matches a
trailing portion of the expanded value of parameter, then the result of the expansion is the expanded
value of parameter with the shortest matching pattern (the ''%'' case) or the longest matching pattern
(the ''%%'' case) deleted. If parameter is @ or *, the pattern removal operation is applied to each
positional parameter in turn, and the expansion is the resultant list. If parameter is an array vari-
able subscripted with @ or *, the pattern removal operation is applied to each member of the array in
turn, and the expansion is the resultant list.
${parameter/pattern/string}
The pattern is expanded to produce a pattern just as in pathname expansion. Parameter is expanded and
the longest match of pattern against its value is replaced with string. If Ipattern begins with /, all
matches of pattern are replaced with string. Normally only the first match is replaced. If pattern
begins with #, it must match at the beginning of the expanded value of parameter. If pattern begins
with %, it must match at the end of the expanded value of parameter. If string is null, matches of pat-
tern are deleted and the / following pattern may be omitted. If parameter is @ or *, the substitution
operation is applied to each positional parameter in turn, and the expansion is the resultant list. If
parameter is an array variable subscripted with @ or *, the substitution operation is applied to each
member of the array in turn, and the expansion is the resultant list.
其实之前已经见过它的用法,但是突然发现用的时候还是不熟练啊,下面有个例子,大家可以看看~
getdeploylist(){
if [ -n "$1" ]
then
applist=(`ls $1`)
#if [ ! -z "$applist" ]
#then
# echo "the directory is no file to prepare ......"
# exit 1 ;
#fi
listsize=${#applist[*]}
for ((i=0;i<$listsize;i++))
do
appname=${applist[i]}
echo "prepare $appname ...."
echo " "
names=(`echo ${appname/-/ }`)
filetype="${appname##*.}"
echo "0: ${names[0]} 1: ${names[1]} 2: ${names[2]} file type: $filetype"
cp $1$appname $1${names[0]}.$filetype
done
else echo "please input directory."
fi
}
getdeploylist $1
ps:
假如你想要得到解压后的包名称,那么你就得修改了,echo ${appname%.*}