У меня есть файл, где я хочу его отсканировать, найти символ '{' и создать новую строку, а затем добавить IP-адрес в новую строку и добавить полу-кельн до конца строки, а затем записать в файл конфигурации.Команда nodejs 'exec' не выполняет команду 'sed' правильно
можно достичь с помощью следующей команды SED при запуске из оболочки:
sed -i 's/{/&\n1.1.1.1;/g' /tmp/test.conf
внутри test.conf:
acl testACL{
};
выход из команды в шоу оболочки:
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 написать базовое echos в тестовый файл конфигурации, и он работал нормально.
Я также попробовал модуль 'shelljs', которому не повезло. Я пробовал бесчисленные комбинации в течение нескольких часов без преобладания! Я озадачен.