【问题标题】:nodejs spawn "su user -c 'ls -la'" not workingnodejs产生“su user -c'ls -la'”不起作用
【发布时间】:2017-01-09 11:48:53
【问题描述】:

我无法生成简单的命令行:su username -c "ls -la"

这是我的代码:

var childArgs = [
    'username',
    '-c',
    '"ls -la"'
];

var ph = spawn('su', childArgs);

ph.stdout.on('data', function (data) {
    console.log(data);
});

ph.stderr.on('data', function (data) {
    console.log('stderr___' + data);
});

ph.on('close', function (code) {
    console.log('close__' + code);
});

ph.on('error', function (error) {
    console.log('error___' + error);
});

输出:

stderr___bash: ls -la: 找不到命令

有没有办法通过nodejs 产生这个命令?

【问题讨论】:

    标签: javascript node.js bash sudo spawn


    【解决方案1】:

    将“ls -la”拆分为数组中的两项。

    var childArgs = [
      'username',
      '-c',
      'ls',
      '-la'
    ];
    

    【讨论】:

    • 不工作:stderr___su:无效选项 -- 'a' 用法:su [options] [LOGIN]
    【解决方案2】:

    只有当我删除双引号时它才有效

    var childArgs = [
        'spawnuser',
        '-c',
        'ls -la'
    ];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 2019-06-04
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多