2013-07-06 5 views
6

Ich brauche Zugriff auf das aktuelle Datum (oder Zeit) im Skript erwarten, so dass ich es in die Verzeichnisse hinzufügen, die zum Beispiel in dem erwartet Skript erstellt werden etwas Ähnliches wie diese Bedürfnisse erhaltenwie kann ich in einem heute erwarte Skript

getan
mkdir file<date> 

ich über Shell als

date | tr " " "-" | cut -f 2,4 -d "-" 

jedoch datieren kann ich keinen Zugriff darauf in erwarten zum Beispiel bekommen nicht etwas tun, wie kann

set var = `date | tr " " "-" | cut -f 2,4 -d "-"` 

ich dies in einem Shell-Skript setzen und dann hallte und die Ausgabe in $expect_out(buffer) so detailliert here bekommen. Aber auch die Puffer die Aufforderung erhält, die wie erwähnt auch entfernt werden muss, beachten Sie, dass $expect_out(buffer) nicht wirklich halten, was die Leute wollen; es braucht typischerweise mindestens gefiltert unten, um die Aufforderung zu beseitigen.

Antwort

12

In erwarten, würden Sie den eingebauten clock Befehl verwenden:

set now [clock seconds] 
set date [clock format $now -format {%b-%d}] 
set file file.$date 

Oder in einem Rutsch:

set file file.[clock format [clock seconds] -format {%b-%d}] 

Ich würde Ihnen dringend ermutigen, ein Datumsformat zu verwenden, die vernünftig

sortiert
set file file.[clock format [clock seconds] -format {%Y-%m-%d}] 
+0

Ausgezeichnete Antwort. Vielen Dank. – doon

+0

@doon In Erwarten können Sie 'timestamp' integrierten Befehle wie' set-Datei-Datei verwenden. [Zeitstempel -format {% Y-% m-% d}] '. –

1

Aus einem erwarteten Skript geschnitten:

# set DATE variable in expect script 
set DATE [exec date +%F] 
send "This is test with expect on $DATE try 4\r" 
send ".\r" 
+0

Können Sie eine Erklärung hinzufügen, wie das funktioniert? –