3

是否可以使用 Rhino 执行外部 bash 脚本并设置另一个文件作为输入?例如,我需要用以下内容重写 bash 脚本(exec.sh):

somescript.sh <fileInput.txt

我尝试了很多方法但没有成功:

  1. 读取 fileInput.txt 作为输入流并传递给 shell:

    var inputStream = new java.io.InputStream(fileInput.txt);
    runCommand("somescript.sh", inputStream);

  2. 写入"somescript.sh <fileInput.txt"额外的 bash 脚本并调用 runCommand():

    message = new FileUtils.writeStringToFile(helpfulScript, "somescript.sh
    runCommand("bash", helpScript.getCanonicalPath());

对不起,纯粹的亮点,感谢任何想法的建议。

4

1 回答 1

2

您需要将输入流作为input对象的属性传入。

var inputStream = new java.io.FileInputStream("fileInput.txt");
runCommand("somescript.sh", { input: inputStream });

如果input不是InputStream,它将被转换为字符串并直接发送到命令。同样,您可以添加output和/或err属性来捕获命令的标准输出和标准错误(此处的文档)。

于 2013-08-22T01:05:24.333 回答