In meiner /etc/crontab
Datei habe ich:
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
Ich weiß, was dies in der Praxis bewirkt, aber ich verstehe die Befehlszeilen nicht.
Mann "Test" hilft überhaupt nicht:
test - check file types and compare values
Jede Hilfe wäre sehr dankbar
Sie kennen vielleicht
[ -x <filename> ]
.test -x <filename>
macht das gleiche, teste, ob diese Datei existiert und ausführbar ist.quelle
Wie in der Manpage angegeben, ist test eval sehr ähnlich, es wertet einen bedingten Ausdruck expr aus und wird mit dem Rückgabestatus beendet. In häufig vorkommenden Fällen wird test verwendet, um den Dateityp als Ausdruck zu bestimmen. In diesen Fällen wird geprüft, ob entweder ein wahrer oder ein falscher Fall zurückgegeben wird. In Ihrer Crontab,
test -x filename
wo Dateiname als Ausdruck verwendet wird. Dies entspricht auch[ -x filename ]
. Dies gibt true zurück, wenn die Datei vorhanden und auch ausführbar ist (Bit ist gesetzt).man test
gibt eindeutige Details zu den verschiedenen Optionen für den Typ an, um die bedingten Ausdrücke in den Dateien und andere gültige Shell-Ausdrücke auszuwerten.Zum Beispiel:
test -1 -gt -2 && echo yes
würde ja drucken.test 0x100 -eq 1
Fehler -> Test: Ganzzahliger Ausdruck vor -eq erwartetquelle
eval
Aussage in sh / ksh / bash / zsh?