Articles of shell

你如何从命令行pipe道脚本到NodeJs?

从命令行,我想从我的粘贴板(FYI:pbpaste是一个OSXfunction)采取脚本,并将其pipe道到节点的repl命令行工具。 例如: pbpaste | node -e 这不会评估我的剪贴板中的内容。 我如何获得运行时间来做到这一点?

用节点改变当前目录

我正在尝试在node.js中编写一个命令行实用程序。 作为其中的一个function,它应该改变它被调用的shell的当前工作目录。 类似于cd node.js版本。 有没有可能做到这一点? 如果是这样,怎么样? 为了澄清,我希望能够通过运行脚本来改变terminal窗口中的当前目录。 /some/path> … /some/path> nodecd /other/path /other/path> … 问题是process.chdir()适用于SCRIPT目录,而不适用于SHELL目录。 我需要能够以某种方式将当前shell通过bash调用传递给节点脚本,并在脚本中更改该shell的path – 创build子shell不会解决问题。

在Emacs的nodejs模式下得到垃圾提示

我在Emacs 24上使用nodejs-mode ,但是当我input: Mx nodejs 它提示垃圾提示像[0J> ,现在即使我已经在下面添加了 (setq ansi-color-for-comint-mode t) 在emacs文件中。 它仍然不起作用。 所有相同的,如果我在Emacs shell-mode上键入node目录,那么我会得到一个更恼人的提示,如下所示: ryu@ryu:~$ node [1G[0J> [3G 有没有人知道为什么这样做?

节点js与shell应用程序交互

网上有很多关于如何产生一个subprocess的节点js例子,然后把结果作为一个string来处理。 但… 我想与孩subprocess“互动”。 例如,我将如何编写节点js应用程序,而不是通过调用“ python ”开始,然后在继续input另一个任意语句“ 4+4 ”之前键入语句“ 1+1 ”,让我捕获结果“ 2 ” ? (通过“types”我假设它将需要stream数据到该进程使用的标准input)。

从node.js,更快,shell grep或fs.readFile?

我有一个很长的node.js进程,我需要扫描日志文件的模式。 我至less有两个明显的select: 产生一个grep进程或使用fs.read *读取文件,并parsingnode.js中的缓冲区/stream。 我没有发现两种方法比较intarwebs。 我的问题是双重的: 哪个更快? 为什么我更喜欢一种技术而不是另一种呢?

同步subprocess调用Node.js 0.10.x中的shell脚本(包括CLI)

同步subprocess调用现在可用于正在开发(即不稳定)的Node.js版本。 这对编写shell脚本来说是个好消息,因为它会允许这样的代码: var history = child_process.execSync('git log', { encoding: 'utf8' }); process.stdout.write(history); 但是,针对当前稳定版本的Node.js(v0.10.30)的代码,除了通过外部库之外,同步subprocess调用不可用 。 两个最stream行的这样的库似乎是shelljs和exec-sync 。 对于准备与v0.10.x一起使用的shell脚本,必须调用二进制文件或其他可执行文件并处理它们的输出,这两个库或其他类似库的相对优缺点是什么? 如果适用,请提供代码示例以供说明。

为单个文件设置语法高亮显示

我经常编写小型的命令行实用程序,并使用其他语言来创build这些脚本(例如node.js,php等)。 当我创build这些文件时,我使用了一个标准的#! 启动文件来向shell表明这个intepreter应该是什么。 例如,对于一个node.js脚本,我把它放在顶部: #!/usr/bin/env node 在PHPStorm / WebStorm中,只要文件扩展名为.js ,语法突出显示就可以正常工作,但是如果删除了扩展名,则没有语法突出显示。 在SublimeText中,我可以使用命令pallet通过键入Ctrl + P / Cmd + P + SSJS(Set Syntax JavaScript)来将当前文件的语法设置为JavaScript(例如) JetBrains IDE中有没有什么办法可以设置单个文件的语法,而不仅仅是基于文件扩展名注册文件types?

如何检测Node的process.stdout是否被pipe道?

有没有什么办法可以检测到我的Node.js脚本的输出是否被传送到terminal以外的东西? 我想要一些检测这种情况的方法: node myscript.js | less 或者如果发生这种情况: node myscript.js

如何安装npm不能在git bash上运行

我打开git bash,然后inputnpm install ,然后返回: bash: npm command not found 我不明白,因为我有node.js命令提示符,当我键入npm -v然后返回3.7.3 。 如何在git中不起作用?

在node / Grunt中执行操作系统特定的脚本

我有一个Grunt任务在本地机器上执行.cmd文件来做它的事情。 我需要在CI服务器上使用这个任务,这是一台Linux机器。 我有相关的.sh(用于Linux的shell脚本)。 我需要一种方法来执行这两个不更改我的Gruntfile。 目前,我必须更改我的Gruntfile,使其在本地为Windows和远程文件使用.sh。 任何解决scheme做同样是受欢迎的。 检测底层操作系统? 或者调用相同的命令,内部调用特定于操作系统的命令?