Javascript / Nodejs执行shell脚本并传递变量

时间:2017-12-14 13:59:44

标签: javascript node.js bash shell

我需要在我的项目中执行一些shell脚本:

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

时间戳必须以unix时间戳的形式传递给脚本。 例如1513252423 设置或传递时间戳:

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

问题是我当前的解决方案不起作用,它是从我在bash上直接使用的调用派生的。时间戳不作为unix时间传递,而是转换为字符串,这是节点控制台中的输出:

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"

任何想法在这种情况下如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这是我的解决方法,现在正在使用!

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

取自:Convert normal date to unix timestamp

THX