File-Comparison
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,v
比dog
, 還新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
**