下面的命令将做什么?
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
表达式的一些测试:
$ 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/