繁体   English   中英

nodejs的“ exec”命令未正确执行“ sed”命令

[英]nodejs 'exec' command doesn't execute 'sed' command properly

我有一个要扫描的文件,找到字符“ {”并创建新行,然后在新行上添加IP,并在行末添加半科隆,然后写入配置文件。

从shell运行时,可以使用以下sed命令完成此操作:

sed -i 's/{/&\n1.1.1.1;/g' /tmp/test.conf

在test.conf内部:

acl testACL{
};

Shell中命令的输出显示:

acl testACL{
1.1.1.1;
};

完美的作品! 现在的问题是当我让nodejs执行它时:

        var sys = require('sys');
        var exec = require('child_process').exec;
        function puts(error, stdout, stderr) { sys.puts(stdout) };
        exec("sed -i 's/{/&\n1.1.1.1;/g' /tmp/test.conf",puts);
        return 0;

当我在控制台中运行命令时:“ nodejs test.js”

我得到空白输出,当我检查文件时,文件“ test.conf”未被更改! 为什么?!

另外,如果您正在考虑“这是权限问题!” 我已经用nodejs exec命令将基本回显写入测试配置文件,并且工作正常。

我也尝试过'shelljs'模块,但没有运气。 我已经尝试了数小时的无数组合,但没有成功! 我很困惑

我认为您需要将\\n\\\\n 现在,它被解析为命令中的文字换行符,这很混乱。

暂无
暂无

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

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