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,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。誰でもこの問題を解決する方法を提案できますか?

ベストアンサー1

あなたの例では、変えるあなたの期待を表現する場所言葉:

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

それは、

  • これは変数です:$dog、設定しないと、次の結果が表示されます。RCS/*(または他の場合$dogに設定されることが発生します。cat)。

  • これは文字通りの意味です。dogRCS/dog*一致RCS/dog,v

おすすめ記事