例如假设我希望复制简单的命令
echo testing > temp.txt
这是我尝试过的
var util = require('util'),
spawn = require('child_process').spawn;
var cat = spawn('echo', ['> temp.txt']);
cat.stdin.write("testing");
cat.stdin.end();
可惜没有成功
例如假设我希望复制简单的命令
echo testing > temp.txt
这是我尝试过的
var util = require('util'),
spawn = require('child_process').spawn;
var cat = spawn('echo', ['> temp.txt']);
cat.stdin.write("testing");
cat.stdin.end();
可惜没有成功
您不能将重定向字符 (>) 作为参数传递给 spawn,因为它不是命令的有效参数。您可以使用exec
而不是 spawn,它会执行您在单独的 shell 中提供的任何命令字符串,或者采用以下方法:
var cat = spawn('echo', ['testing']);
cat.stdout.on('data', function(data) {
fs.writeFile('temp.txt', data, function (err) {
if (err) throw err;
});
});
echo
似乎没有阻止标准输入:
~$ echo "hello" | echo
~$
^ 那里没有输出...
所以你可以尝试的是:
var cat = spawn('tee', ['temp.txt']);
cat.stdin.write("testing");
cat.stdin.end();
我不知道这对你是否有用。
您可以通过管道节点控制台输出 la “node foo.js > output.txt”,也可以使用 fs 包进行文件写入
exec
.const { exec } = require( "child_process" );
exec( "echo > temp.txt" );
不确定 和 之间的优缺点exec
,spawn
但它确实允许您轻松运行完整命令并将其写入或附加到文件中。