是否有JavaScript Shell?


30

最近,我一直在与JS合作,并对这种语言非常热情。我知道有在服务器端运行JS的node.js,但是是否有使用JS作为脚本语言的shell?如果存在这种情况,它的可用性和稳定性如何?

Answers:


17

这对您来说是否理想?

// Replace macros in each .js file
cd('lib');
ls('*.js').forEach(function(file) {
  sed('-i', 'BUILD_VERSION', 'v0.1.2', file);
  sed('-i', /.*REMOVE_THIS_LINE.*\n/, '', file);
  sed('-i', /.*REPLACE_LINE_WITH_MACRO.*\n/, cat('macro.js'), file);
});
cd('..');

如果是这样,ShellJS可能很有趣,那就是

Node.js API之上的Unix shell命令的可移植(包括Windows)实现。

不过,我不确定是否可以将其用作功能齐全的登录外壳。(也许有包裹吗?)

您可能会争辩说它实际上不是外壳,但是您知道TermKit吗?它由Node.js + Webkit组成,您可以使用JS对其进行扩展(我想);Shell语言仍然是Bash(-ish)。


好吧,这看起来很酷!我会尝试的。
J-unior 2012年

从技术上讲,我实际上并不认为这是一个外壳程序,因为它不遵循cmd arguments语法。例如psh,根据我的理解,将这种语法添加到perl语言中,因此它看起来更像是典型的shell gnp.github.io/psh 。可能有一个反例,但我还没有找到。
威廉

如何将其设置为登录外壳?同样,我想要这样的东西,但我只是不确信这就是事实。
威廉

还是有点扑朔迷离,我们可以sed({i:1}, 'BUILD_VERSION', 'v0.1.2', file)改用。在await中使用异步函数会更好,因此并行会更快。
inf3rno

ShellJS链接已损坏。
yO_


8

如果您使用的是Ubuntu或任何其他基于Debian的系统,则可以安装Rhino(来自Mozilla.org)。

sudo apt-get install rhino

它通过替代方式提供js:

=== /usr/bin/js is a symlink... following it
lrwxrwxrwx 1 root root 20 Nov 21 08:54 /usr/bin/js -> /etc/alternatives/js
=== /etc/alternatives/js is a symlink... following it
lrwxrwxrwx 1 root root 14 Nov 21 08:54 /etc/alternatives/js -> /usr/bin/rhino
=== /usr/bin/rhino is owned by package: rhino ===

因此,调用rhinojs将为您提供JavaScript Shell。

编辑(2014-06-30):

rhino可以快速测试文件中的某些javascript代码,但它不是交互式外壳,因此不支持GNU readline样式的编辑。对于交互式工作,您可能更喜欢nodejs:在Ubuntu / debian上sudo apt-get install nodejs。这应该提供一个更具交互性的js外壳程序(使用command调用js),您可以在其中编辑行并使用向上/向下箭头键调出历史记录。有关更多选项,请参阅 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells


0

在Chrome和Firefox中,如果按F12键,它将调出开发人员工具。在那儿,您可以找到一个名为console的选项卡,您可以在其中键入和测试JavaScript脚本。它也具有代码完成和其他功能。


5
我想你不明白这个问题。我问过UNIX shell。但是还是感谢您愿意提供帮助。
J-unior 2012年

1
这回答了以下问题:“ 是否有使用JS作为脚本语言的shell? ”。问题中没有任何关于bashzsh(等)的替代品的讨论
roaima
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.