Die mathematische Logik Ihres Codes durch 86400 ist die folgende:
[ expr $i \ 86400 ]
Das \
ist ein Backslash und kein Divisionssymbol, das der Schrägstrich ( /
) ist. Ändern Sie es einfach so und Sie sollten gut sein:
[ expr $i / 86400 ]
Das folgende Skript soll mir einen laufenden Countdown geben, bis das Passwort für den Testbenutzer abgelaufen ist. Diesen Befehl füge ich dann in einen Befehl ein, der eine E-Mail an einen festzulegenden Schwellenwert sendet und eine Anweisung schreibt /var/log/messages
. Das Problem ist, dass die $i
Variable nicht durch die 86400-Zahl geteilt werden kann. Das soll die Sekunden zurück in Tage verwandeln. Vielen Dank im Voraus für Ihre Hilfe.
#!/bin/bash for i in { $(( ( $(date +%s --date "`chage -l testuser | grep "Password expires" | cut -d " " -f3,4,5`") \ ) - $(date +%s) )) } ; do [ expr $i \ 86400 ] done exit 0
Die mathematische Logik Ihres Codes durch 86400 ist die folgende:
[ expr $i \ 86400 ]
Das \
ist ein Backslash und kein Divisionssymbol, das der Schrägstrich ( /
) ist. Ändern Sie es einfach so und Sie sollten gut sein:
[ expr $i / 86400 ]