2017-12-14 1 views
-1

Ich brauche ein paar Shell-Skripte auf meinem Projekt auszuführen:Javascript/NodeJS excute Shell-Skript und übergibt variable

restoreBackup(timestamp) { 
    return runCommand(`backup_restore.sh ${timestamp}`); 
}, 

Der Zeitstempel hat, um das Skript in Form eines Unix-Zeitstempel übergeben werden. z.B. 1513252423 Der Zeitstempel gesetzt oder übergeben:

restoreBackup(timestamp,callback) { 
    backup.restoreBackup(timestamp) 
     .then(callback) 
     .catch(err => callback(err)); 
    } 

Problem ist, dass meine aktuelle Lösung nicht funktioniert, ist es eine Art von dem Anruf, den ich auf bash verwenden, um direkt abgeleitet. Der Zeitstempel wird nicht als Unix-Zeit vergangen, aber in einen String umgewandelt, das ist der Ausgang in der Knoten Konsole:

Running cmd: /home/essentim/manager/scripts/backup_restore.sh Thu Dec 14 2017 11:53:43 GMT+0000 (UTC) 
error handler: 
"/bin/sh: 1: Syntax error: \"(\" unexpected" 

Jede Idee, wie dies in diesem Fall zu lösen?

+0

können Sie Ihre Zeitstempel protokollieren und zeigen? –

+0

Nicht sicher, ich folge, was meinst du mit "meine aktuelle Lösung funktioniert nicht"? Welchen Zeitstempel übergibt du und welcher Zeitstempel erhält dieser Befehl? –

+0

Das Problem ist, es scheint, dass $ {timestamp} den Unix-Zeitstempel nicht passiert, es macht eine Zeichenfolge wie "14. Dezember 2017 1X: XX: XX" daraus. – Hias

Antwort

0

Dies ist meine Problemumgehung, die jetzt funktioniert!

restoreBackup(timestamp) { 
    timename = new Date(timestamp).getTime()/1000; 
    return runCommand(`backup_restore.sh ${timename}`); 
    }, 

nahm es aus: Convert normal date to unix timestamp

Thx

Verwandte Themen