[英]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.