File-Comparison

bash 邏輯比較對以 ,v 結尾的 RCS 文件給出錯誤答案

  • April 14, 2020

命令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。有人可以建議如何解決這個問題嗎?

在您的範例中,您指的是表達式需要文字的變數

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**

引用自:https://unix.stackexchange.com/questions/579898