下面的命令将做什么?

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/

10-11 14:30