我正在使用插件 SDK 编写一个 Firefox 扩展,它需要启动一个 bash 脚本,然后从它在当前目录中创建的文件中读取其输出,如下所示:
echo "bash script output" >file.txt
我在 main.js 中按如下方式启动 bash 脚本:
function runBashScript(scriptFile) {
var localFile = Cc["@mozilla.org/file/local;1"]
.createInstance(Ci.nsILocalFile)
localFile.initWithPath('/bin/bash');
var process = Cc["@mozilla.org/process/util;1"]
.createInstance(Ci.nsIProcess);
process.init(localFile);
var args = [ scriptFile ];
var rc = process.runAsync(args, args.length,
function(subject, topic, data) {
console.log('subject=' + subject + ', topic=' + topic + ', data=' + data);
console.log('bash script finished executing, returned ' + process.exitValue);
});
return rc;
}
我的问题是我如何以编程方式从 main.js 中找出当脚本回显时 file.txt 将存储在哪里?那么启动进程的当前工作目录是什么?无论如何要检索或更改它吗?
nsIProcess online 上的文档没有提到任何关于此的内容。
我已经确定(通过搜索 FS)file.txt 在使用 cfx run 运行扩展时以及在将其安装为 XPI 后在 Firefox 中运行时结束的位置。但我想在启动时确定这些信息,甚至可能控制它最终存储的位置。