shell-script für osx und linux scheitert an 'mktemp'

koksnutte

Ribston Pepping
Registriert
13.04.05
Beiträge
299
'mktemp' unter linux erstellt eine datei mit einem einzigartigen namen in /tmp
unter osx funktioniert das nicht, man muss um das gleiche ergebnis zu erhalten 'mktemp -t NAME' ausführen (die datei wird zwar in $TMPDIR erstellt, aber das ist ja egal).
das wiederum funktioniert unter linux nicht richtig, die datei wird zwar erstellt, erhält aber keinen einzigartigen namen... :mad:

gibts jetzt irgend einen trick um auf beiden systemen mit dem gleichen mktemp befehl eine einzigartige datei in einem temporären ordner zu erstellen oder muss ich dafür "pfuschen" und sowas in mein skript einbauen:
'mktemp -t TEST$RANDOM'
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Der Befehl hat zwei große Varianten. Hast Du die erste mit den templates schon probiert?

Code:
mktemp [-d] [-q] [-t prefix] [-u] template ...
mktemp [-d] [-q] [-u] -t prefix
 

Cathul

Tydemans Early Worcester
Registriert
26.10.07
Beiträge
397
Wieso fragst Du im Script nicht erst die Betriebssystemversion ab und rufst dann per if/else Verzweigung mktemp mit den richtigen Optionen entsprechend dem aktuellen Betriebssystem auf?
 

koksnutte

Ribston Pepping
Registriert
13.04.05
Beiträge
299
Wieso fragst Du im Script nicht erst die Betriebssystemversion ab und rufst dann per if/else Verzweigung mktemp mit den richtigen Optionen entsprechend dem aktuellen Betriebssystem auf?
das hatte ich mir natürlich auch schon überlegt, nur wäre die methode für diesen zweck im vergleich zur vorher von mir geposteten möglichkeit (mktemp -t TEST$RANDOM) noch umständlicher.

hab das ganze übrigens so gelöst: mktemp -t test.XXXX
mktemp tauscht die X gegen zufällige zeichenfolgen.