下面的命令会做什么?
ls -l ${INPUT%.jnl}.jnl
$INPUT
包含一些值。
最佳答案
${INPUT%.jnl}
剥离 .jnl
的最短匹配项从$INPUT
的背面.
然后说${INPUT%.jnl}.jnl
它看起来像是一种制作$INPUT
的方法存在于某物中 + .jnl
并防止它出现两次.jnl
最后,如果$INPUT
已经包含该值。
所以 ls -l ${INPUT%.jnl}.jnl
将执行 ls -l
在 $INPUT
指示的路径/名称中, 确保它以 .jnl
结尾.
查看关于 ${INPUT%.jnl}
的一些测试表达式:
$ var="hello.jnl.jnlbye"
$ echo ${var%.jnl}
hello.jnl.jnlbye # as .jnl is not present in the back, nothing gets removed
$ var="hello.jnl.jnl"
$ echo ${var%.jnl}
hello.jnl # it removed the last .jnl
关于linux - Unix 通配符扩展/正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28342826/