bash – shell脚本中的##是什么意思
发布时间:2020-12-16 01:51:47 所属栏目:安全 来源:网络整理
导读:在编译脚本时,我遇到了命令do f = ${file ## * /}.我很想知道这行中的##是什么意思.感谢您提前回复 解决方法 在bash中,它删除了前缀模式. 在这里,它基本上为你提供了最后一个/路径分隔符之后的所有内容(通过删除前缀* /,后跟/的任意数量的字符): pax fspec=
在编译脚本时,我遇到了命令do f = ${file ## * /}.我很想知道这行中的##是什么意思.感谢您提前回复
解决方法
在bash中,它删除了前缀模式.
在这里,它基本上为你提供了最后一个/路径分隔符之后的所有内容(通过删除前缀* /,后跟/的任意数量的字符): pax> fspec=/path/to/some/file.txt pax> echo ${fspec##*/} # greedy remove */ at start file.txt 还有一个单#变种,它是非贪婪的匹配和后缀的等价物: pax> echo ${fspec#*/} # non-greedy remove */ at start path/to/some/file.txt pax> echo ${fspec%%/*} # greedy remove /* at end pax> echo ${fspec%/*} # non-greedy remove /* at end /path/to/some ## * /和%/ *大致相当于你从basename和dirname获得的内容,但是在bash中,所以你不必调用外部程序: pax> basename $fspec file.txt pax> dirname $fspec /path/to/some (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |