Der Befehl ls -al dog RCS/dog,v
gibt zurück
-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
was darauf hinweist, dass es RCS/dog,v
neuer ist als dog
, aber
if [[ RCS/$dog* -nt dog ]] ; then echo not older than dog ; else echo older than dog ; fi
gibt zurück older than dog
. Da dieser Vergleich für Dateien, die nicht mit ,v enden, korrekt durchgeführt wird, scheint es ein Problem mit Dateien zu geben, die mit enden ,v
. Kann mir bitte jemand einen Vorschlag machen, wie man das beheben kann?
Antwort1
In Ihrem Beispiel beziehen Sie sich auf eineVariablewo Ihr Ausdruck einwörtlich:
if [[ RCS/$dog* -nt dog ]] ; then echo not older than dog ; else echo older than dog ; fi
Das ist,
Dies ist eine Variable:
$dog
, und wenn nicht gesetzt, erhalten Sie etwas wieRCS/*
(oder etwas anderes, wenn$dog
ist eingestellt aufcat
).Dies ist wörtlich gemeint:
dog
, UndRCS/dog*
würde passenRCS/dog,v