簡體   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