bash 逻辑比较对于以 ,v 结尾的 RCS 文件给出错误的答案

bash 逻辑比较对于以 ,v 结尾的 RCS 文件给出错误的答案

命令ls -al dog RCS/dog,v返回

-rw-r--r-- 1 simon simon   0 Apr 13 19:25 dog
-r--r--r-- 1 simon simon 191 Apr 13 19:28 RCS/dog,v

表明它RCS/dog,vdog, 还新

if [[ RCS/$dog* -nt dog ]] ; then echo not older than dog ; else echo older than dog ; fi

返回older than dog。由于对于不以 ,v 结尾的文件,此比较执行正确,因此对于以 .v 结尾的文件似乎存在问题,v。有人可以建议如何解决这个问题吗?

答案1

在您的示例中,您指的是多变的你的表达期望的地方文字

if [[ RCS/$dog* -nt dog ]] ; then echo not older than dog ; else echo older than dog ; fi

那是,

  • 这是一个变量:$dog,如果未设置,你会得到类似RCS/*(或者其他东西,如果$dog恰好被设置为cat)。

  • 这是一个字面意思:dog, 和RCS/dog*会匹配RCS/dog,v

相关内容