Re: Bash Einzeiler Zeit+Datum letzter Eintrag dmesg
Moin Alexander!
Am 12.08.2011 14:17, Alexander Skwar schrub:
> let lastentry=$(dmesg|sed -e '$!d' -e 's,.\(.*\)\..*,\1,');let boot=$(sed
> 's,\..*,,' /proc/uptime);let lastdate=$boot-$lastentry;date -d "$lastdate
> seconds ago"
Auf einem frisch gestarteten Lenny meckert die bash:
~$ let lastentry=$(dmesg | sed -e '$!d' -e 's,.\(.*\)\..*,\1,');let
boot=$(sed 's,\..*,,' /proc/uptime);let
lastdate=$boot-$lastentry;date=$(date -d "$lastdate seconds ago");echo $date
-bash: let: lastentry=: syntax error: operand expected (error token is "=")
Fr 12. Aug 19:17:56 CEST 2011
Aber das Ergebnis stimmt :-) Auf einem neu gestarteten Squeeze meckert nix.
So geht's aber auch ohne Fehler
let lastentry=$(dmesg sed -e '$!d' -e 's,.\(.*\)\..*,\1,'
-e 's, *,,g');
let boot=$(sed 's,\..*,,' /proc/uptime);
let lastdate=$boot-$lastentry;
date=$(date -d "$lastdate seconds ago");
echo $date
Liegt wohl an den Leerzeichen...
> Ist aber auch nicht sonderlich kürzer ;) Dafür wird aber nur
> sed als externes Tool verwendet. Zuvor hast Du nur cut
> verwendet, dafür aber besonders bei $lastentry mehrfach
> aufgerufen. Ach, und tail brauche ich da auch nicht mehr.
>
> Ob's besser ist — weiss nicht ;)
Macht nix, sieht magischer aus :-) Danke!
Gruß
Frank
Reply to: