Tag: shell

将parameter passing给来自stdin的节点脚本

概观 我想将parameter passing给来自stdin的节点脚本。 一般来说,我正在拍这样的东西 nodeScript.js | node {{–attach-args??}} –verbose –dry-run 那会和…一样 node nodeScript.js –verbose –dry-run 更多详情 这里是一个简单的插图脚本dumpargs.js console.log("the arguments you passed in were"); console.log(process.argv); console.log(""); 那么你可以这样做: node dumpargs.js –verbose –dry-run file.txt [ 'node', '/home/bill-murray/Documents/dumpargs.js', '–verbose', '–dry-run', 'file.js' ] 现在的问题是,如果脚本出现在标准input中(比如说,通过cat或curl ) cat dumpars.js | node the arguments you passed in were [ 'node' ] 是否有一个很好的方法来传递参数? 不是节点 […]

在Node.js中执行多个shell命令

我想连续执行一个node.js应用程序的多个Shell命令。 在我的情况下, exec(command1 & command2)不工作,因为它应该。 它适用于像ls和pwd这样的简单命令,但是我需要启动一个服务器,然后在其上执行特殊命令,它只执行第一个命令,而不再执行其他命令。 当我在我的命令行界面上工作时,我只需键入一个命令,然后我需要一个工具以相同的方式执行它们,但是自动从一个node.js应用程序开始 – 所有这些都在同一个进程中!

如何在节点child_process中转义命令注入?

我使用string连接将参数添加到child_process.exec命令,它们被忽略 var exec = require( "child_process" ).exec; var cmd = exec( "grunt build –project="+application, { cwd: application }, function( error, stdout, stderr ){}); cmd.stdout.pipe( process.stdout ); cmd.stderr.pipe( process.stderr ); 为什么string连接是一个问题,以及如何避免它?

执行Linux shell脚本时出错

我试图执行一个shell脚本来启动一个djtmlx实时更新框架中的nodejs服务器。 根据dhtmlx文档,nodejs服务器将被放入web根目录。 我写了一个位于/ var / www(nodejs文件夹所在位置)的batch file,这样服务器就可以启动,或者根据需要重新启动,而无需打开terminal: #!/bin/bash nodejs nodejs/server.js 从一个脚本有一个PHP脚本的Ajax调用: $("#starter").click(function(response){ var jqxhr = $.ajax( "./phpFunctions/nodeStarter.php" ) .done(function(response) { alert(response); }) .fail(function() { alert(response); }) }); 在nodeStarter.php中有以下内容: error_reporting(E_ERROR | E_WARNING | E_PARSE); $output = shell_exec("/var/www/nodeStart 2>&1; echo $?"); echo "<pre>$output</pre>"; unset $output; 和错误消息: 咦? 似乎是在Web文件夹中,而不是在我告诉它的Web根目录server.js。 我很困惑。

NPM rimraf – 当文件夹丢失时继续执行(停止退出代码1)

我有一个npm脚本设置为几个同步命令。 启动命令是npm run clean:install" 。 这是序列: "install:all": "npm install && bower install", "clean": "npm run rimraf — node_modules doc typings coverage wwwroot bower_components" "preclean:install": "npm run clean", "clean:install": "npm set progress=false && npm run install:all" 如果所有的目录都存在,就可以正常工 问题是,如果任何目录已被删除,该脚本存在代码1,并防止所有其他syncronous脚本运行。 所以这意味着它无法运行clean:install的原始命令: "clean:install": "npm set progress=false && npm run install:all ” 来自npm的错误: npm ERR! angular2-webpack-starter@5.0.4 clean: `npm cache clean […]

如何将.json文件作为参数导入.js文件并使用命令行启动它?

我有一个.json文件存储在我的电脑本地目录中。 data.json { "foo": "bar", "baz": "bat" } 我想以某种方式将data.json加载到.js文件中,我也在本地存储在我的计算机上。 然后运行它。 app.js var foo = "bar", baz = "bat"; // Somehow, I need to import these arguments from data.json // Then do stuff with them… app.js是一个纯粹的JavaScript文件(没有访问HTML“包装器”或任何JS库,如jQuery等)。 我想用下面的一个来调用app.js: 命令行/ shell脚本(包括但不一定是node.js), AppleScript(Mac OS X Yosemite v.10.10.1)或者 iMacros for Firebox书签 。 我怎样才能做到这一点?

apm(atom的包pipe理器)启动shell运行错误

我正在处理我的osx 10.11系统中的apm错误。 当我跑步 apm 在我的命令行中,由于错误的文件path导致错误: /usr/local/bin/apm: line 32: /Applications/Atom.app/Contents/Resources/app/apm/node_modules/.bin/node: No such file or directory 签出后,我发现:在apm shell(/Atom.app/Contents/Resources/app/apm/node_modules/.bin/apm)中,有一个while循环: while [ -L "$binDir" ] do binDir=`readlink "$binDir"` builtin cd "`dirname "$binDir"`" binDir=`basename "$binDir"` done 似乎这个循环只在我的osx系统上运行一次,而且在其他系统上运行两次,我所拥有的缺陷就是因为这个原因。

节点脚本如何在我当前的bash上下文(进程)中运行?

在bash你可以source或. 在当前的上下文中运行一些bash脚本。 所以,如果你有例如文件foo与alias bar='echo bam'在其中,当你运行它像 $ . foo 它会从文件foo中将这个别名发送到当前的上下文中。 我知道,如果我通常使用#!/usr/bin/env node第一行来运行节点脚本,那么这个脚本在子shell中运行,或者作为单独的进程运行。 我想避免这一点,并使节点脚本作用于我当前的bash进程(上下文)。 我怎样才能运行节点脚本,改变我当前的bash上下文? ps:任何例子都不错。 节点脚本只能改变我的目录,但它也必须发生在我当前的bash上下文中。 ps2:小问题:如果在节点中是不可能的(我很难相信这个),或者它非常复杂,那么在其他语言中是可能的吗? 像PHP,Java,Ruby(我不问C,因为它很明显:)如果是这样,请给我一些例子。

通过shell启动节点服务器,完成后打印

我正在寻找一种方法来通过shell命令启动节点服务器,然后打印一些内容。 TL;博士 我有一个Gulp任务: 通过发出$ node server/app.js命令来启动节点服务器 服务器启动后必须调用cb() 。 现在,为了适当的回火,我可以使用两种解决scheme: 解决scheme1 启动后让服务器输出一些东西 示例server/app.js : http.listen((process.env.PORT || 5000), function(){ console.log("start"); }); 这个解决scheme并不理想 。 它介绍了gulpfile.js和server / app.js之间的耦合。 耦合是“开始”关键字。 解决scheme2 发出$ node server/app.js命令时发出$ echo命令 例: $ node server.app.js && echo 'start' 这是理想的,因为它不会将我的app.js文件与我的gulpfile.js打印在一起。 上述不起作用 – 运行时,它只是输出我的服务器configuration为在启动时打印。 'start'string永远不会被打印。 巨人 gulp.task("node server/app.js && echo 'start'", function(cb) { serverProcess.stdout.on("data", function(data) { if(data.toLowerCase().includes("start")) { […]

当通过节点JS插入时,Mongo shell不显示集合(命令显示集合)

这是我的项目url-shortener目录 我有一个涉及使用MongoDB的Node JS应用程序。 它工作正常,因为我尝试插入,查找和打印数据从MongoDB到节点JS文件server.js中的控制台。 但是,如果我打开一个Mongo Shell并键入show collections ,则什么也不显示。 以下是我如何build立MongoDB连接: mongod –dbpath …path-to-project/url-shortener/data , 这里是我用来连接我的server.js文件的url: var dbUrl = "mongodb://localhost:27017/url-shortener";