gpt4 book ai didi

bash - Node.js Shell 脚本和参数

转载 作者:IT老高 更新时间:2023-10-28 21:55:01 27 4
gpt4 key购买 nike

我需要在 node.js 中执行一个 bash 脚本。基本上,该脚本将在系统上创建用户帐户。我遇到了this example这让我知道如何去做。但是,脚本本身需要用户名、密码和用户真实姓名等参数。我仍然不知道如何将这些参数传递给脚本做这样的事情:

var commands = data.toString().split('\n').join(' && ');

有谁知道我如何通过 ssh 连接传递这些参数并在 node.js 中执行 bash 脚本。谢谢

最佳答案

参见文档 here .关于如何传递命令行参数非常具体。请注意,您可以使用 execspawnspawn 有一个用于命令行参数的特定参数,而使用 exec 您只需将参数作为要执行的命令字符串的一部分传递。

直接来自文档,内嵌解释注释

var util  = require('util'),
spawn = require('child_process').spawn,
ls = spawn('ls', ['-lh', '/usr']); // the second arg is the command
// options

ls.stdout.on('data', function (data) { // register one or more handlers
console.log('stdout: ' + data);
});

ls.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});

ls.on('exit', function (code) {
console.log('child process exited with code ' + code);
});

而使用 exec

var util = require('util'),
exec = require('child_process').exec,
child;

child = exec('cat *.js bad_file | wc -l', // command line argument directly in string
function (error, stdout, stderr) { // one easy function to capture data/errors
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});

最后,请注意 exec 缓冲输出。如果要将输出流式传输回客户端,则应使用 spawn

关于bash - Node.js Shell 脚本和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7464036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com