【发布时间】:2013-06-07 10:09:23
【问题描述】:
我正在使用 spidermonkey javascript 引擎从 shell 运行 javascripts,并且大多数东西都可以根据需要运行。
我希望能够从命令行将变量作为参数传递给 javascripts,但无法找到一种方法来做到这一点,或者即使有可能。
例如,如果我有一个 javascript 文件 (myJs.js) 可以从存储在文件 (data.dat) 中的一些数据中解析文本,我目前使用正常语法调用 javascript:
js -f myJs.js
并且 javascript 本身具有从我要处理的任何文件中获取数据的命令,如下所示:
var fileData = read("data.dat");
这很好用,但如果我想为不同的数据文件重用 javascript,每次我想为新数据运行它时,我都必须在 javascript 中编辑文件名。
我的问题是,有没有办法从命令行将文件名(或任何其他变量)传递给 javascript,并从 javascript 中将其作为参数检索,例如:
js -f myJs.js -- "othertData.dat"
javascript 可以在哪里访问值“otherData.dat”:
var fileData = commandLine.argument[0];
// (I know commandLine is not an object and argument not a property, just illustrating what I want to do!);
可能根本不可能做到这一点。我可以通过 javascript 批处理文件,方法是让脚本读取另一个包含文件名列表的文件,但直接从命令行传递文件名会容易得多。
我已经广泛搜索了这方面的信息,并且存在一些混淆,因为您可以将 spidermonkey 本身的参数传递给 javascript,但我想以类似于将变量参数传递给 bash 脚本的方式将变量直接传递给脚本:
: myBashScript <myData1> <myData2>
变量参数被检索到编号的参数数组中:
firstArgument=$1
如果无法做到这一点,那么权威性的声明可能会很有用,因为我发现在网络上讨论的类似问题没有明确的答案(大多数讨论的是传递蜘蛛猴自己的论点而不是变量)。
谢谢
【问题讨论】:
-
请不要将其标记为 link 的副本,因为尽管我确信他想做同样的事情,但这个问题似乎与我在这里提到的 spidermonkey 参数混淆了并且没有令人满意的答案,所以我希望这个问题能够阐明需要什么并解决问题。谢谢。
标签: javascript shell command-line-arguments spidermonkey