Tag: bash

你如何让Cloud9 IDE在后台运行?

我已经按照https://github.com/ajaxorg/cloud9上的说明将Cloud9 IDE下载到我的Mac,一切正常。 但是,我似乎无法让它在后台运行,通过bash脚本启动: 名为“ide”的Bash脚本具有可执行权限: #!/usr/bin/env sh CLOUD_USER=`whoami` CLOUD_DIR="/Users/$CLOUD_USER/Sites/cloud9" CLOUD_PORT=3333 CLOUD_WORKSPACE="/Users/$CLOUD_USER/Sites" CLOUD_ACTION="open" CLOUD_BEFORE="" CLOUD_AFTER="" case "$1" in -b) CLOUD_BEFORE="nohup " CLOUD_AFTER="> /dev/null 2>&1 &" ;; .) CLOUD_WORKSPACE=`pwd` CLOUD_AFTER="-a $CLOUD_ACTION" ;; *) if [ $1 ]; then CLOUD_WORKSPACE=$1 fi CLOUD_AFTER="-a $CLOUD_ACTION" ;; esac $CLOUD_BEFORE`/usr/local/node/bin/node $CLOUD_DIR/bin/cloud9.js -p $CLOUD_PORT -w $CLOUD_WORKSPACE` $CLOUD_AFTER 这个想法是,你可以启动这几种方式: $ ide 将启动Cloud9并使用〜/ Sites文件夹作为工作区启动。 或者你可以通过运行来指定工作区: $ […]

Grunt – 你可以从一个自定义的注册任务中调用grunt-contrib-copy,并自定义副本吗?

我知道我可以在grunt.config中设置一个任务grunt-contrib-copy从src到dest的文件,并通过Grunt文档查看我知道我可以使用grunt.file.copy复制单个文件。 但是,是否可以在自定义注册任务中dynamic创buildgrunt-contrib-copy任务,以容纳从bash发送的参数? 我想创build一个新目录grunt.file.mkdir(“some / path / appfoldername”),然后将文件从另一个目标文件复制到该文件夹​​,但直到运行自定义任务后,我才知道文件夹名称。 所以像这样: grunt create_app:appfoldername 所以我可以一次复制一个文件,但是文件会改变,所以需要grunt-contrib-copy的强大function,但是可以自定义注册任务的灵活性。 如果我的解释不够清楚,我想像这样: grunt.registerTask('createCopy', 'Create a copy', function(folderName) { var cwd = grunt.template.process("some/path/to/app"); var src = grunt.template.process("some/path/to/src"); var dest = grunt.template.process("some/path/to/dest") + folderName; grunt.task.run('copy: { files: { cwd: cwd, src: src, dest: dest } }'); } UPDATE grunt.registerTask('mkapp', 'Create Application', function(appName) { // Check appName is […]

找不到NPM -bash命令

我正在尝试运行nodeschool.io练习。 我在运行软件包时遇到了麻烦。 我安装的第一个软件包: $ npm install -g learnyounode $ learnyounode 使用命令learnyounode运行程序包 在他们的网站上的每一个其他的软件包,我尝试安装,并不能在命令行中使用正确的命令运行程序,例如: $ npm install -g functional-javascript-workshop@latest $ /Users/name/npm/bin/functional-javascript -> /Users/name/npm/lib/node_modules/functional-javascript-workshop/functional-javascript.js /Users/name/npm/bin/functional-javascript-workshop -> /Users/name/npm/lib/node_modules/functional-javascript-workshop/functional-javascript.js functional-javascript-workshop@0.0.27 /Users/name/npm/lib/node_modules/functional-javascript-workshop ├── lorem-ipsum@0.1.1 (inflection@1.2.7, optimist@0.3.7) └── workshopper@0.7.2 (map-async@0.1.1, tuple-stream@0.0.2, split@0.2.10, through@2.3.6, mkdirp@0.3.5, colors-tmpl@0.1.0, xtend@2.1.2, terminal-menu@0.2.0, optimist@0.6.1, msee@0.1.1) $ functional-javascript-workshop $ -bash: functional-javascript-workshop: command not found 这里是一个链接到我试图在例子中安装的包: function-javascript-workshop 正如你所看到的,我得到消息-bash – command […]

通过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中,我想与服务器一起工作。 请帮我解决这个问题。