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

相關內容