Tag: bash

可靠地确定使用shell(cmd,bash等)来运行node.js脚本

正如标题所述,我想确定使用shell( cmd , bash等)来运行node.js脚本(从脚本中)。 当用os模块检测操作系统可以给出一些线索的时候,一些实例是不够的,比如像在GitBash或者Cygwin这样的terminal上通过win32 bash执行。 有没有这个信息的process对象的某个属性? *编辑:虽然process.env.SHELL是一个选项,但在使用某些terminal时,并不总是可以填充,也可能是undefined

child_process给出执行grep命令失败

我想在节点中使用child_process来search文件的存在: const { exec } = require('child_process'); exec('ls | grep "filename"', (err, result) => {…}) 当文件名存在时,exec结果是好的。 但是当文件名不存在时,我得到一个错误: 命令失败:ls | grep“文件名” 在这种情况下,如何判断是执行命令时是否有错误,或者只是因为没有find结果? 编辑 感谢您不要以这种方式search文件的build议。 上面的代码不是实际的代码,只是一个演示我的问题与grep的演示文稿。 在我的实际案例中,我正在通过任务假脱机程序在输出中search关键字,因此我使用了exec和tsp -l | grep … tsp -l | grep …

Bash 101,$ HOME / ivy / bin / node,不会显示在节点环境的“require.paths”中

我正在尝试完成以下教程: http://howtonode.org/deploying-node-with-spark 我已经安装了常春藤,如果我去cd $HOME/ivy/bin ,然后键入node ,我会得到节点环境。 但是,在将其添加到.profile : PATH = “$ HOME /藤/斌:$ PATH” 我将退出会话,重新login,以下是require.paths显示的内容: > require.paths [ '/home/myusername/.node_modules', '/home/myusername/.node_libraries', '/usr/local/lib/node' ] 它不是拿起'/home/myusername/ivy/lib/node' …发生了什么事情?

如何在bash命令行上输出文件列表

我正在使用handlebars.js为我们的单页应用程序呈现客户端模板(在node.js服务器端使用Jade)。 我想预编译服务器端的句柄模板,并把它们打包成一个JS文件发送给客户端。 目前,我使用handlebars来编译模板,如下所示: $ handlebars template1.handlebars template2.handlebars -f precompiled_templates.js 我想写一个bash脚本,可以读取目录中的所有*.handlebars文件,然后通过*.handlebars编译器运行它们。 所以,如果我有一个像这样的目录: templates/ temp1.handlebars temp2.handlebars temp3.handlebars temp4.handlebars 在templates目录中运行我的bash脚本(或者一行命令)本质上会运行下面的handlebars命令: $ handlebars temp1.handlebars temp2.handlebars temp3.handlebars temp4.handlebars -f precompiled_templates.js 有谁知道我可以写一个bash脚本来获取目录中的所有句柄文件到上面的命令行吗?

从bash脚本调用grunt.js时遇到问题

当我呼吁grunt(https://github.com/gruntjs/grunt),从grunt.js相同的目录,它工作正常。 但是,如果我尝试使这种名为“build.sh”的bash脚本: #!/bin/bash `grunt grunt.js` 而当我打电话./build.sh它给出了以下错误: ./build.sh:第2行:Running:找不到命令 我试图指定完整path咕噜,也试图指定完整pathgrunt.js文件与configuration,但它不想工作:( 我错过了什么?

强制node.js使用bin / bash而不是sh

我试图执行一个基本的bash脚本从节点使用exec()函数。 bash脚本如下: #!/bin/bash ffmpeg -f concat -i <(for f in $1/*.mov ; do echo "file '$f'"; done) -c copy $1/output.mov 脚本工作正常,从命令行运行它,但从节点内运行时,我得到一个语法错误: line 2: syntax error near unexpected token (“ 运行这个命令节点时会出现它试图使用sh而不是bash 。 任何人都可以validation这是真实的,并给出一个可能的解决方法或解决scheme? 谢谢提前!

在Node.js中运行带有“spawn”的bash脚本似乎暂停执行一半

下面是我在做什么的要点: https : //gist.github.com/MattCollins84/75f9ebd422ed6d1d5c91 作为一些进程的一部分,我生成了一个bash脚本,里面有大量的curl命令(大约20k个命令)。 我想通过节点运行这个脚本。 我正在使用spawn来做到这一点,它工作正常。 除了70多个命令之后,它就停止了。 由spawn创build的readstream停止输出任何数据。 没有错误,或者任何我能看到的东西。 如果我用“ps x | grep curl”来查看发生的事情,我可以看到进程id刚开始改变,但是似乎在某个时刻停止了,从此再也不会启动了。 这个过程只是挂起。 手动杀死这个过程不会让下一个开始。 此外,与我的bash脚本有关的过程仍然存在,再次,杀死没有任何区别。 观察和我排除的事情: 使用最less的资源 在terminal上运行生成的bash脚本正常工作 似乎并不重要,我curl的URL(即它不是我的应用程序) 我觉得我有一些愚蠢的东西,但是我不知道该怎么去Google弄明白! 我只是希望运行这个文件,就好像我在terminal上一样,但是Node出现了一些限制,以防止它失控。 或者其他的东西。 有任何想法吗?! 谢谢

如何获得保存在bash脚本中的Git仓库variables

在运行postinstall到npm安装我的bash脚本我想获得一个特定的回购基地的Github远程URL。 但是,运行时提取的值是“git”,而不是我的git仓库的URL。 你将如何捕获从这个命令返回的url? #!/bin/bash … remoteBackup=git config –get remote.base.url …

recursion重命名文件以使文件名成为path的串联

对不起,如果标题不清楚。 示例文件夹结构有助于理解: /images/icons/654/323/64/64/icon.png /images/icons/837/283/64/64/icon.png 被重命名为 /images-icons-654-323-64-64-icon.png /images-icons-837-283-64-64-icon.png 我不是很棒,所以我必须从头开始: find . -name "*.png" 这将find所有的文件,然后我希望使用-exec rename ,或任何工作。 也开放使用任何语言来完成工作!

我怎样才能从npm脚本pipe道到bash别名?

我有一个别名在我的.bashrc为bunyan: $ alias bsh alias bsh='bunyan -o short' 这行在bash中运行正常: $ coffee src/index.coffee | bsh 但是如果我把同样的东西放在'脚本' "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "coffee":"coffee src/index.coffee | bsh" }, 和npm run coffee ,它失败了: > coffee src/index.coffee | bsh sh: bsh: command not found events.js:141 throw er; // Unhandled 'error' event ^ Error: write […]