나는 Addon SDK를 사용하여 bash 스크립트를 시작한 후 현재 디렉토리에 다음과 같이 생성 한 파일에서 출력을 읽어야한다.nsIProcess를위한 작업 디렉토리를 얻거나 설정하는 방법 runAsync()
는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;
}
내 질문은, file.txt를 저장합니다 내가 main.js 내에서, 프로그래밍 방식으로 알아 어떻게되는 경우 : 내 main.js에서 다음과 같이
echo "bash script output" >file.txt
나는 bash는 스크립트를 실행하고 스크립트가 에코 할 때? 시작된 프로세스의 현재 작업 디렉토리는 무엇입니까? 그리고 어쨌든 그것을 검색하거나 변경하려면?
nsIProcess 온라인 설명서에는 이에 대한 언급이 없습니다.
cfx run을 사용하여 확장 프로그램을 실행할 때와 XPI로 설치 한 후 Firefox에서 실행할 때 file.txt가 끝나는 위치를 (FS를 검색하여) 결정했습니다. 하지만 시작시이 정보를 확인하고 저장 위치를 제어하려고합니다.
블라디미르에게 감사드립니다! 이 질문에 대한 답변입니다. 필자의 경우, file.txt 파일은 항상 생성되고 성공적으로 작성되기 때문에 CurrWorkD 디렉토리는 쓰기 가능합니다. 나는 file.txt가 아닌 /tmp/file.txt에 내 스크립트를 반향하게 할 것이다. 보다 단순한 타협처럼 보입니다. :) –