Articles of bash

通过shell脚本将引用的parameter passing给节点?

我有一个文本文件,每行是我想传递给nodejs脚本的参数列表。 以下是一个示例文件file.txt: "This is the first argument" "This is the second argument" 为了演示,节点脚本很简单: console.log(process.argv.slice(2)); 我想为文本文件中的每一行运行这个节点脚本,所以我做了这个bash脚本run.sh: while read line; do node script.js $line done < file.txt 当我运行这个bash脚本时,这是我得到的: $ ./run.sh [ '"This', 'is', 'the', 'first', 'argument"', '"This', 'is', 'the', 'second', 'argument"' ] 但是,当我直接运行节点脚本,我得到了预期的输出: $ node script.js "This is the first argument" "This is the second argument" [ […]

离子,npm和cordova命令都需要sudo才能工作

根据我在一些论坛上看到的样子,sudo就是为什么我在运行sudo ionic emulate ios时候出现错误。在这篇文章中, 新增了离子 – 无法在El Capitan上为ios(9)创build,而sudo离子是必需的,不推荐使用npmconf 。 (我正在运行El Capitan btw)。 每当我需要使用离子,npm或cordova命令时,我总是必须把sudo放在它的前面,否则我会得到一个“bash command not found”的错误。 我试图使用这个修复https://www.npmjs.com/package/npm-sudo-fix,但它不工作。 这是在日志中发生的事情: Dylans-MBP:离子项目Dylan $ sudo npm install -g npm-sudo -fix密码:/ usr / local / bin / npm-sudo-fix – > / usr / local / lib / node_modules / npm-sudo-fix / index .js npm-sudo-fix@0.1.3 / usr / local / lib […]

用节点改变当前目录

我正在尝试在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不会解决问题。

Node-webkit执行外部命令?

如何在当前脚本的node-webkit(或node.js)外部进程并行执行系统命令。 我正在尝试使用child_process。 我的脚本subprocess中断后退出。 但是,我需要一个简单的方法执行bash命令没有输出或输出,但没有程序停止时,我的脚本将被打断。 我需要一个正确的简单的方法。 谢谢大家。

如何继续在repl / bash w / Node.js Commander中接收asynchronousconsole.log消息?

我有一个Node.js CLI,我一直在使用Commander库来构build。 这是主执行文件的代码。 #!/usr/bin/env node var program = require('commander'); var scmStash = require('./lib/hdqc/scmStash'); var command = {}; program .version('0.0.1') .option('-P, –Projects', 'List Projects') .option('-R, –Repositories', 'List All Repositories on Server.') .parse(process.argv); function listProjects() { scmStash.getProjectListing(function (data) { for (var i = 0; i < data.size; i++) { var project = data.values[i]; console.log(' ' + i […]

node.js通过ssh不可用

我正尝试在通过SSH运行Ubuntu的远程服务器上调用node.js的安装。 节点已经通过nvm安装。 SSH和进入调用节点工作得很好: user@localmachine:~$ ssh user@remoteserver (Server welcome text) user@remoteserver:~$ which node /home/user/.nvm/v0.10.00/bin/node 但是,如果我把它合并成一行: user@localmachine:~$ ssh user@remoteserver "which ls" /bin/ls user@localmachine:~$ ssh user@remoteserver "which node" 没有节点的迹象,所以我试图采购.bashrc并等待10秒钟: user@localmachine:~$ ssh user@remoteserver "source ~/.bashrc; sleep 10; which node" 只有节点似乎受此影响。 有一件事我注意到,如果我ssh进来,然后检查我在其中的shell说-bash而如果我ssh直接它给我/bin/bash 。 我试着在bashloginshell里面运行命令: user@localmachine:~$ ssh user@remoteserver 'bash –login -c "which node"' 依然没有。 基本上我的问题是: 当我从SSH以非交互方式调用它时,为什么不是bashfind我的node.js安装?

node.jssubprocess更改一个目录并运行进程

我尝试使用subprocess在node.js中运行外部应用程序,如下所示 var cp = require("child_process"); cp.exec("cd "+path+" && ./run.sh",function(error,stdout,stderr){ }) 但是,当我尝试运行它卡住,没有进入callback run.sh启动一个服务器,当我用cp.exec执行它,我期望它asynchronous运行,这样我的应用程序不会等到服务器终止。 在callback中,我想与服务器一起工作。 请帮我解决这个问题。

NPM不会在Mac上安装任何软件包。 新的,干净的构build。 EACCES和其他错误

我从头开始重build我的Mavericks(Mac OS X Version 9.4)机器。 我是本机的pipe理员和唯一用户。 我通过git-2.0.1-intel-universal-snow-leopard.pkg ( http://git-scm.com/downloads )在默认的/usr/local/git/bin/git位置安装了/usr/local/git/bin/git 。 我通过他们的node-v0.10.30.pkg ( http://nodejs.org/download/ )在其默认的/usr/local/bin/node位置安装了/usr/local/bin/node 。 Node的安装程序包的最后一步包括一个注意事项,他们也在默认的/usr/local/bin/npm位置安装了NPM。 我的$PATH回声/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin /usr/local/bin )。 运行npm install -g bower导致: npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/bower' npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/bower'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '/usr/local/lib/node_modules/bower', npm ERR! fstream_type: 'Directory', npm ERR! […]

从文件夹外部执行Node.js文件中断文件path

我有一个名为“server.js”的Node.js文件。 在脚本中,我打开一些文件,使用如下所示: var certPem = fs.readFileSync('cert_and_key_dev.pem', encoding='ascii'); 使用bash shell,如果我cd到server.js所在的目录,然后运行命令: [mybashshell] $ node server.js 它工作,我没有错误。 服务器启动并运行。 现在,当我输出server.js文件所在的目录时,再次运行相同的shell命令来启动我的服务器。 它抱怨我的文件path到我的“cert_and_key_dev.pem”被打破。 我并不期待这样的事情发生。 我虽然正在执行的脚本文件中使用的path应该是相对于脚本文件,而不是执行我的bash shell命令的位置。 有任何想法吗?

我如何安装grunt-cli而不会出错?

受到克里斯·科伊尔(Chris Coyier)的启发,我决定咕噜一声。 但是我遇到了很大的问题。 首先,我安装了Node。 然后我添加一个package.json文件到我的项目根目录,包括: { "name": "example-project", "version": "0.1.0", "devDependencies": { "grunt": "~0.4.1" } } 然后我运行npm install 最后,我运行了npm install -g grunt-cli 其中回来了一大堆的错误: npm http GET https://registry.npmjs.org/grunt-cli npm http 304 https://registry.npmjs.org/grunt-cli npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/grunt-cli' npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/grunt-cli'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: […]