Articles of shell

从bash脚本发送kill -s USR1会停止进程,而从terminal执行相同操作则不会

有一个名为mimosa的nodejs脚本( https://github.com/dbashford/mimosa ) Nodejs使用USR1将正在运行的进程切换到debugging模式 这是我如何手动 $ cd myproj $ mimosa watch -s # this runs node /path/to/mimosa watch -s 22:16:03 – Watching /Users/admin/Work/test-mimosa/assets … # some more output # check the pid from a different terminal $ ps aux | grep mimosa admin 79284 0.7 0.8 3153812 129272 s006 S+ 10:16PM 0:03.57 node /opt/local/bin/mimosa watch […]

使用带有shell的Node模块SSH2

我的目标是创build一个Web应用程序,允许用户远程连接到SSH服务器,即不需要在他们的计算机上安装SSH客户端。 所以这意味着我的服务器将是用户和他们的SSH服务器之间的中间接口。 我find了一个用于节点的SSH2模块: https : //github.com/mscdex/ssh2 我想通过使用shell()方法,最合适的连接方法。 以下是获取shell的基本尝试。 var Connection = require('ssh2'); var c = new Connection(); c.on('ready', function() { c.shell(onShell); }); var onShell = function(err, stream) { if (err != null) { console.log('error: ' + err); } stream.on('readable', function() { var chunk; while (null !== (chunk = stream.read())) { console.log('got %d bytes of data', […]

execFile Node.js – 找不到Shell脚本

我试图使用node.js和Github webhooks自动部署我的项目。 我跟着这个教程 ,但我得到这个execFile函数错误: { [Error: spawn ENOENT] code: 'ENOENT', errno: 'ENOENT', syscall: 'spawn' } 我检查了shell脚本(hook.sh)文件的位置和fs.exists函数说没关系。 我试图执行其他文件,而不是一个shell脚本,它的工作(或至less它发现该文件)。 所以这可能是bin / bash的某种问题。 我真的不知道。 shell脚本文件位于与hook.js文件相同的目录中(请参阅教程)。 我的虚拟主机是WebFaction。

从bash脚本启动节点脚本

我有我的程序在bash中,我想启动一个节点程序来获取它返回的string,就像这样: #!/bin/bash mystring=$( node getString.js) mplayer $mystring 谷歌search,我发现我应该inlcude #!/usr/bin/env node 但我需要使用string给mplayer ..任何想法? 解 正如Zacbuild议的(并且感谢这个链接 )我以这种方式解决了我的问题: script.sh #!/bin/bash mplayer ${1} 的script.js /* do whatever you need */ var output="string" var sys = require('sys'); var exec = require('child_process').exec; function puts(error, stdout, stderr) { sys.puts(stdout); } exec("./script.sh " + output, puts);

取消设置NODE_DEBUGvariables

我设置了NODE_DEBUG环境variables来request : export NODE_DEBUG=request 现在我想解除它。 export NODE_DEBUG="" 我尝试了上面的命令,但是Node进程仍然输出请求debugging消息。 我做错什么了吗? 我怎样才能防止下面的消息? REQUEST: { host: 'api……com', port: …, path: '/…', method: 'get', headers: {…} STATUS: 200 HEADERS: {…}

如何防止caching结果中的node.js exec?

我正在尝试使用此代码获取带有node.js exec的WiFinetworking列表: exec('iwlist ra0 scan | grep ESSID', function(err, out, code) { console.log(out); }); 它能够很好地打印所有find的ESSID。 但是当我重命名我的路由器的ESSID时,无论我等待多less次或者运行了多less次,我仍然会得到旧的ESSID。 如果我运行相同的命令iwlist ra0 scan | grep ESSID iwlist ra0 scan | grep ESSID从Linuxshell,我得到新的ESSID,它也更新node.js执行结果。 看起来像是将结果caching在node.js exec中。 我如何强制重新扫描或禁用caching?

zsh:命令未find:即使在我已经在全球安装了快速和快速生成器之后仍然表示

嘿,所以当我试图在terminalmac运行expression它不工作。 我已经安装了快递发电机,并使用sudo npm install -g express和sudo npm install -g快递发电机进行快递。 我能够在我的npm目录中find它们。 但是由于某些原因,快速命令仍然不起作用。 我该怎么办?

使用Node.js,如何在subprocess上执行多个命令并在每个命令之后获得响应?

我试图使用Node.js通过Inkscape获取有关多个SVG文件的信息。 我可以运行像Inkscape file.svg –select=id -W & Inkscape file2.svg –select=id -W (获取两个文件的宽度),但它使用两个Inkscape实例,这是慢。 使用Inkscape的–shell选项,您可以非常快地运行多个命令,因为Inkscape只初始化一次。 http://tavmjong.free.fr/INKSCAPE/MANUAL/html/CommandLine.html 然而,我不知道如何使用Inkscape shell与Node.js,因为所有的child_processtypes似乎都希望每个命令后的响应和退出,否则它挂起,直到超时或程序closures。 我喜欢下面的某种function。 var Inkscape = require('hypothetical_module').execSync('Inkscape –shell'); var file1width = Inkscape.execSync('file.svg -W'); var file2width = Inkscape.execSync('file2.svg -W'); if(file1width > 200){ Inkscape.execSync('file.svg –export-pdf=file.pdf'); } if(file2width > 200){ Inkscape.execSync('file2.svg –export-pdf=file2.pdf'); } Inkscape.exec('quit'); 下面是一个从cmd运行Inkscape的示例,其中包含名为“acid.svg”的testing文件 C:\Program Files (x86)\Inkscape>Inkscape –shell Inkscape 0.91 r13725 interactive shell mode. […]

如何使包pipe理器npm在Mac OS X上使用bash 4?

我使用自制软件在Mac OS X Yosemite上更新了bash版本 ,以便在我的npm脚本中使用“globstar”。 例如使用模式./test/**/*.jsrecursion地列出test目录中的所有.js文件。 但是,npm将运行较旧的bash版本(版本3)的脚本。 是否有可能使npm使用更新的bash版本? (我不确定,但我想npm使用/ bin / bash而不是/ usr / local / bin / bash) 更新:我的具体用例是调查使用npm作为构build工具的可能性,例如,使用诸如"build:test:scripts": "browserify ./test/**/*.js -o /build/test-bundle.js",类的npm脚本将所有testing规范捆绑到"build:test:scripts": "browserify ./test/**/*.js -o /build/test-bundle.js", 。

将值从一个node.js文件返回到shell脚本

我在shell脚本中像这样调用一个NodeJS文件: $ node process.js $ let "errors |= $?" 我想看看process.js文件是否返回任何错误。 如何在process.js文件中返回一个值,以便我可以在shell脚本中捕获它。