ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux-Shell脚本中%和%%有什么区别?

2019-11-09 01:50:54  阅读:13  来源: 互联网

标签:bash shell scripting linux



在bash脚本中,当t =“ hello.txt”都

${t %%.txt}和${t%.txt}返回“ hello”

${t ## *.}也是一样,${t#*.}返回“ txt”.

它们之间有区别吗?它们如何工作?

解决方法:

简而言之,%%尽可能多地去除,%尽可能少地去除.

# t="hello.world.txt"
# echo ${t%.*}
hello.world
# echo ${t%%.*}
hello

从bash手册中:

'${PARAMETER%WORD}'
'${PARAMETER%%WORD}'
     The WORD is expanded to produce a pattern just as in filename
     expansion.  If the pattern matches a trailing portion of the
     expanded value of PARAMETER, then the result of the expansion is
     the 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.


标签:bash,shell,scripting,linux

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有