Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unixzeit in einer Shell-Procedure



d.ausstroit
12-06-2007, 10:22
Hai.

Ich benötige die Unixzeit in Sekunden in einer Procedure, um damit einen Dateinamen eindeutig zu machen.

Z.B. datname.1637826482.txt (1637826482 soll die Unixzeit sein).

Ich weiß einfach nicht, wie ich die Unixzeit in den Dateinamen bekomme. Überall lese ich von "date +%s", aber das funktioniert unter einem AIX-Unix nicht.

Bitte helft mir. Ich habe die Frage auch schon in einem anderen Forum gestellt, allerdings ohne anwendbares Ergebnis.

AudiCamper

jan61
12-06-2007, 23:09
Moin,


...
Ich benötige die Unixzeit in Sekunden in einer Procedure, um damit einen Dateinamen eindeutig zu machen.
...

date +%s ist eine GNU-Erweiterung. Du hast folgende Möglichkeiten:

1. Schau Dir mal http://www-03.ibm.com/servers/aix/products/aixos/linux/rpmgroups.html#System_Environment/Base an, vielleicht ist in den coreutils auch ein GNU date dabei.

2. Nimm Perl, wenn installiert:

x=`perl -e 'print time();'`Das ist zwar mit Kanonen nach Spatzen geschossen, aber funktioniert.

3. Wenn es nur ein eindeutiger Dateiname sein soll: Das kannst Du doch auch mit dem AIX-date:

x=`date +%Y%m%d%H%M%S`Allerdings musst Du auch sicherstellen, dass nicht mehrere Dateien in der gleichen Sekunde angelegt werden (egal mit welchem Format erzeugt). Besser sind da Routinen, die Dir einen eindeutigen Namen erzeugen. Guck mal, ob Du in AIX mktemp findest.

Jan