如何在 node.js 脚本中获取有关标准输出重定向文件名的信息
How to have information about stdout-redirected filename in a node.js script
我的问题可能很简单,也可能没有解决方案。所以,我请你帮我找出如何访问 stdout 重定向到 out.txt
的信息
node do-nothing.js < in.txt > out.txt
特别是我需要在脚本 do-nothing.js 中访问文件名 "out.txt"(即访问 process.stdout.______)
提示:我已经注意到在应用重定向时 process.stdout._type 变成 'fs' 而不是 'tty'。
你可以使用这个模块 https://www.npmjs.com/package/yargs 然后这个模块你命名为 https://www.npmjs.com/package/fs 另一方面如果你需要更复杂的东西你可以使用子进程打包以从 args 执行您需要的操作并执行您拥有的 bash 脚本,例如
我明白了。这是解决方案,如果您将脚本作为 node stdout_redirect.js > out.txt && more out.txt
启动,您会在 d
变量中找到所需的信息。感谢您的帮助,希望这对其他人有帮助。
var fs = require('fs');
fs.readdir(process.env.PWD,function(err, dir){
var stdout_ino = 0;
fs.stat('/dev/stdout',function(err,stats){
stdout_ino = stats.ino;
dir.forEach(function(d){
fs.stat(d,function(err,stats){
if (stats.ino === stdout_ino)
{
console.log(d);
}
});
});
});
});
我的问题可能很简单,也可能没有解决方案。所以,我请你帮我找出如何访问 stdout 重定向到 out.txt
的信息node do-nothing.js < in.txt > out.txt
特别是我需要在脚本 do-nothing.js 中访问文件名 "out.txt"(即访问 process.stdout.______)
提示:我已经注意到在应用重定向时 process.stdout._type 变成 'fs' 而不是 'tty'。
你可以使用这个模块 https://www.npmjs.com/package/yargs 然后这个模块你命名为 https://www.npmjs.com/package/fs 另一方面如果你需要更复杂的东西你可以使用子进程打包以从 args 执行您需要的操作并执行您拥有的 bash 脚本,例如
我明白了。这是解决方案,如果您将脚本作为 node stdout_redirect.js > out.txt && more out.txt
启动,您会在 d
变量中找到所需的信息。感谢您的帮助,希望这对其他人有帮助。
var fs = require('fs');
fs.readdir(process.env.PWD,function(err, dir){
var stdout_ino = 0;
fs.stat('/dev/stdout',function(err,stats){
stdout_ino = stats.ino;
dir.forEach(function(d){
fs.stat(d,function(err,stats){
if (stats.ino === stdout_ino)
{
console.log(d);
}
});
});
});
});