如何通过终端或其他方式将参数传递给JavaScriptCore / Console?

时间:2011-08-03 03:06:34

标签: php javascript bash command-line webkit

JSC seems like the simpler-and-easier,更便携,更普遍安装 - 世界上node.js的明显替代品...我已经能够找出基础知识,但几乎有虚无...关于它(为什么?),所以这是一个简单的问题,我希望有人可以澄清..

我在.js文件中有一个很好的littlejavascript“class”,就像这样... BTW, it takes a Hex Color code and spits out a "named" color. Neat.示例用法:

<script type="text/javascript" src="ntc.js"></script>
<script type="text/javascript">
var n_match  = ntc.name("#6195ED");
    n_rgb        = n_match[0]; // This is the RGB value of the closest matching color
    n_name       = n_match[1]; // This is the text string for the name of the match
    n_exactmatch = n_match[2]; // True if exact color match, False if close-match
alert(n_match);
</script>

代码开始于,并以此结束......

var ntc = {
     init: function() {
     var color, rgb, hsl;
  ⤹
}
ntc.init();

我能够毫不费力地在本文档的 BOTTOM 中对某些值进行硬编码,就像这样......

var n_match = ntc.name("#000000");
print(n_match);

从终端轻松简单地运行代码......

/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc -d ntc.js ↩

#000000,Black,true

然而,对于我的生活,我无法弄清楚如何传递这个吸盘的一些变数。

就像,我只是想从204080 8080a0 404060 a0a0a0 606080 c0c0c0 a0a0a0 606060 808080 404040 c0e080 a0e060 80c020 e0f0a0 a0e040 202020 60a0e0 60c0f0 a0a0a0 a0e0f0 202020 606060 a0a0a0 404020 604020 f0c040 202020获得一个回调  但似乎无法扭转它的手臂。-e选项看起来很有希望,但无济于事。

多年来有很多奇怪的,小众式的任务javascript已经变异处理,将它们交给这个家伙会很棒.. 比喻特洛伊木马它可能已经安装了在潜在的客户端机器上,甚至可以运行。尽管如此,这个文件无处不在,但是参加史蒂夫鲍尔默粉丝俱乐部会议的文件很少......

那就是说,lol,这个 JSC 的唯一一个半有用的信息片段之一来自一位MS员工的帖子,从7年前开始,提出......标题“ Commandline.js

import System;
// This function reads the commandline arguments and prints them
function PrintCommandLineArguments() {
    var args:String[] = System.Environment.GetCommandLineArgs();
    var iValue:int;
// Print the command-line arguments    
for (iValue in args)
    Console.WriteLine(args[iValue]);
}
PrintCommandLineArguments(); 

我无法让它发挥作用,但必须有一种方式,聪明的裤子'......哦,坦率地说,这只会增加我对所有服务器的口中发泡的困惑最近的JS人,因为这件事本质上是旧闻的消息......为什么这个运行时环境支持当前的热门话题解决方案呢? JSC难道吗?线索我,姐姐的女朋友。 ∀Ⓛ∃✖

1 个答案:

答案 0 :(得分:3)

以下似乎有效:

# using Bash on Mac OS X 10.6.7
sudo ln -is /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc /usr/local/bin

# simple example to print passed arguments
jsc --help   # Usage: jsc [options] [files] [-- arguments]
jsc <(echo 'print(arguments[0]); print(arguments);') -- one two three


# http://chir.ag/projects/ntc/
curl -L -O http://chir.ag/projects/ntc/ntc.js
echo '
for(var i in arguments) {
   var n_match = ntc.name(arguments[i]);
   print(n_match);
}
' >> ntc.js

jsc ntc.js -- 204080 8080a0 404060 a0a0a0 606080 c0c0c0 a0a0a0 606060 808080 \
              404040 c0e080 a0e060 80c020 e0f0a0 a0e040 202020 60a0e0 60c0f0 \
              a0a0a0 a0e0f0 202020 606060 a0a0a0 404020 604020 f0c040 202020


# For more information on using javascript from the command line see, for example: 
# - http://www.phpied.com/javascript-shell-scripting/
# - http://littlecomputerscientist.wordpress.com/2008/12/19/command-line-scripting-with-javascript/
# - http://littlecomputerscientist.wordpress.com/2008/12/20/improving-spidermonkeys-load-for-command-line-javascript/