我正在学习http://www.tldp.org/LDP/abs/html/index.html上的bash脚本资料 并插入例7-7:
http://tldp.org/LDP/abs/html/comparison-ops.html#EX14
有${filename##*.} != "gz"
,这可能意味着
$filename
不以.gz
结尾,但我不这样做
在这里知道##
的含义。有谁可以帮助我?
谢谢!
答案 0 :(得分:4)
在变量扩展中使用${string##sub}
从sub
中删除最长匹配子字符串string
(#
相反地删除最短匹配子字符串。)
在你的情况下,是的 - 这将在文件名的第一个.
之后返回字符串,给出文件扩展名。
如果您在this文档中搜索##
,您会找到解释(以及其他类似命令)。
答案 1 :(得分:1)
在文件名的上下文中,试图在变量filename中找到扩展名
filename="*.log"
echo ${filename##*.}
log
我们正在" *。"
之后获得字符串文件名的一部分答案 2 :(得分:1)
##
用于从变量中删除子字符串。有关详情,请查看this页面。
例如。如果filename=/home/user.name/folder.1/test.gz
,那么$ {filename ## *。}将为您输出gz
。