简体   繁体   English

Node.js上的Shell脚本

[英]shell script on node.js

I am very new to node.js, I am trying to create a node.js script with the execution of shell script in it. 我对node.js非常陌生,我正在尝试创建一个执行shell脚本的node.js脚本。

Here is the code which i have . 这是我的代码。

var spawn = require('child_process').spawn
var _ = require('underscore');
var deploySh = spawn('sh', [ 'vij.sh' ], {
  cwd: process.env.HOME + '/u/qa/gv/node/scripts',
  env:_.extend(process.env, { PATH: process.env.PATH + ':/usr/local/bin' })
});

and when i try to execute it, i am facing the below issue. 当我尝试执行它时,我面临以下问题。 Can anyone help me on this? 谁可以帮我这个事?

node vijay

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: spawn ENOENT
    at errnoException (child_process.js:988:11)
    at Process.ChildProcess._handle.onexit (child_process.js:779:34)

spawn is complaining that it can't find 'sh', use 'bash' instead (you might also need to specify the full path to your script depending on your env setup.) spawn抱怨说找不到“ sh”,而改用“ bash”(您可能还需要根据环境设置指定脚本的完整路径。)

so I'd try: 所以我会尝试:

  1. spawn('bash', ['vij.sh'], ... spawn('bash',['vij.sh'],...

  2. spawn('bash', ['/my/path/to/vij.sh'], ... spawn('bash',['/my/path/to/vij.sh'],...

  3. spawn('/my/path/to/vij.sh', [], ... spawn('/ my / path / to / vij.sh',[],...

var spawn = require('child_process').spawn
var _ = require('underscore');
var deploySh = spawn('sh', [ 'vij.sh' ], { 
  // cwd: process.env.HOME + '/u/qa/gv/node/scripts',
  env:_.extend(process.env, { PATH: process.env.PATH + ':/usr/local/bin' })
});

Comment cwd: line no. 注释cwd:行号。 4 4

Until now I don't know what is process.env.HOME value but this worked for me. 到目前为止,我不知道什么是process.env.HOME值,但这对我有用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM