Tag: bash

在节点js中使用rm和扩展的globbing

我需要每天清理我的应用程序的文件夹,所以我做了一个bash脚本(在超级用户的帮助下)这样做。 它从控制台运行良好,但不能从节点正确解释。 这里的工作脚本: rm ./app/download/!("test1"|"test4"); 我以为会在node.js中像这样工作: var spawn = require('child_process').spawn, PATH = process.argv[1].substr(0, process.argv[1].lastIndexOf('/') + 1), //Get the full path to the directory of the app arg = [PATH + 'download/!(\"', 'test1', '\"|\"', 'test4', ('\")'], child = spawn ('rm', arg); child.stderr.on('data', function(data) { console.log('stderr:' + data); }); 但我得到rm解释他们是不同的文件: stderr:rm: cannot remove '/home/user/app/download("' : No such […]

从node.js调用sh脚本

我有一个node.js应用程序,每天连接到服务器。 在此服务器上,可以使用新版本的应用程序,如果有的话,安装的应用程序会下载它,检查下载是否完成,如果是,则停止调用一个shell脚本,该脚本将replace旧应用程序,并启动它。 我正在努力开始更新脚本。 我知道我可以用child_process_execFile函数启动它,我这样做: var execF = require('child_process').execFile; var PATH = process.argv[1].substr(0, process.argv[1].lastIndexOf('/')+1), filename = 'newapp.js', execF(PATH + 'up.sh', [PATH + filename], function () {console.log('done'); return ;}); up.sh,现在只是: cat $1 > /home/pi/test 我在控制台上打印完成,但是没有创buildtesting。 我知道execFile创build一个subprocess,是什么阻止脚本来做到这一点? 如果我想开始这个,我知道我只需要在脚本中做一些cp来让我的应用程序自动更新。 编辑: 像往常一样开始(从控制台调用脚本),它运行良好,从node.js调用时脚本不执行的原因吗?

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);

像节点中的bash -x

有没有像节点js中的bash选项-x? 只是弄清楚我的stream程正在做什么,尤其是当我不知道我的stream程挂在哪里时,这是非常有用的。

无法使用nvm在全球安装快速生成器

我正在使用NVM来避免使用sudo来安装全局。 它适用于所有从鲍尔,到Grunt等,但是,当我做npm install -g express-generator它不工作。 例如,inheritance我在全球安装Bower时所得到的结果: npm install -g bower /Users/jrdillon522/.node/bin/bower -> /Users/jrdillon522/.node/lib/node_modules/bower/bin/bower bower@1.3.12 /Users/jrdillon522/.node/lib/node_modules/bower ├── is-root@1.0.0 … … … ├── update-notifier@0.2.0 (semver-diff@0.1.0, string-length@0.1.2, latest-version@0.2.0, configstore@0.3.1) ├── mout@0.9.1 ├── handlebars@2.0.0 (optimist@0.3.7, uglify-js@2.3.6) ├── inquirer@0.7.1 (figures@1.3.3, mute-stream@0.0.4, through@2.3.6, readline2@0.1.0, lodash@2.4.1, cli-color@0.3.2, rx@2.3.14) └── insight@0.4.3 (object-assign@1.0.0, async@0.9.0, chalk@0.5.1, os-name@1.0.1, lodash.debounce@2.4.1, tough-cookie@0.12.1, configstore@0.3.1, inquirer@0.6.0) 工作正常吗? 当我安装Express Generator时,我得到了一个经典的错误: npm […]

在用npm安装后找不到命令

预先感谢您看我的文章! 主要问题: 当我从命令行调用它时,我需要做些什么来获取http-server? 我觉得这个问题已经显示出我的linux无能。 如果我想从头开始使用node和home brew,那么在继续之前,我需要删除哪些文件和目录(或者确保它们已经被卸载命令删除)? 提前致谢! 背景 之后我想我已经修复了家庭冲煮(OS X 10.10使用了更新版本的Ruby),我试图在收到消息-bash: http-server: command not found后,尝试用npm重新安装http-server。 所以我运行sudo npm install -g http-server 。 然后我得到一个包含npm http GET https://registry/npmjs.org/和npm http 304 https://registry/npmjs.org/ 。 后面是~.node/bin/http-server -> ~.node/lib/node_modules/http-server/bin/http-server' and 'http-server@0.7.3 ~.node/lib/node_modules/http-server 。 笔记 我发现这个/usr/local/bin/http-server@ ,我相信这是http-server的符号链接。 看来,链接http-server -> ../lib/node_modules/http-server/bin/http-server不存在,我不明白为什么。 文件夹/usr/local/lib/node_modules/http-server确实有0.6.1和0.7.3 目录0.7.3只有一个package目录,后面跟着一个package.json文件。 我很困惑,因为我期望这不仅仅包含一个package.json。 我相信brew是正确安装的,因为which brew会提供/usr/local/bin/brew 另外,我得到了brew -v Homebrew 0.9.5 which npm给出/usr/local/bin/npm (节点也是这样) npm […]

NVM – 我安装了NPM的所有软件包突然停止工作

我用NVM安装Node,因为我不想使用sudo来进行访问权限。 我安装了nvm,安装了节点,安装了npm和一些npm包。 第二天早上,我打开我的电脑,一切都不工作了。 我猜~/.nvm/v0.10.33/bin不在我的$ PATH中,但我很困惑,因为它昨天完全正常工作。 PS,命令nvm仍然在我的terminal上工作。

nodejs / bower错误“toLowerCase”

我在本地和全球尝试过4次以上的尝试,但我无法弄清楚如何安装(和configuration)nodejs / bower / wysihtml5-editor。 这就是发生的事情: 我想用这个奇特的wysiwyg编辑器: 在这里 所以我不得不做一些研究,因为我不是一个职业,但我做到了这一点: 1. sudo apt-get update 2. sudo apt-get install git-core curl build-essential openssl libssl-dev 3. sudo git clone https://www.github.com/joyent/node.git 4. cd node 5. git tag #to see the versions 6. sudo git checkout v0.9.9 7. sudo ./configure 8. sudo make 9. sudo make install 10. sudo curl […]

node.js如何使用child_process.exec显示stdininput

我有一个node.js脚本使用child_process.exec来调用npm adduser 。 通常情况下,如果我把npm adduserinput到控制台,我会得到: 用户名:[stdin提示符] 密码:[stdin提示符] 等等 如果我使用node.js来执行这个代码,那么没有任何东西会被打印出来,它只会被卡在一个空的提示符下,这个提示符会一直持续下去,直到我按下ctrl-C。 我如何获得通常的行为? 我基本上只是想执行bash,让它做它的事情…