Tag: shell

用bash读取package.json文件的name属性

我有这个: str=`cat package.json` prop="name" my_val="$(node -e "console.log(JSON.parse(${str})[${prop}]);")" echo "$my_val" 我想读取package.json文件的name属性。 我认为这是接近,但我得到一个JSON.parse错误: SyntaxError: Unexpected token o in JSON at position 1 at Object.parse (native) at [eval]:1:18 at ContextifyScript.Script.runInThisContext (vm.js:25:33) at Object.runInThisContext (vm.js:97:38) 任何人知道如何解决? 这工作: prop="name" my_val="$(node -e "console.log(require('./package.json')['$prop'])")" echo "json val: '$my_val'" 但我想知道如何做到这一点。

基于gnu readline的节点shell

在内部使用gnu readline的节点是否有shell? 正如你所知道的节点壳吸盘有两种方式(除其他外):它没有search历史。 这可以通过使用像https://github.com/danielgtaylor/nesh这样的事情来解决。 使用gnu readline的shell(比如psql,ipython,python,bash等)具有很多开箱即用的function,并且全部共享您在〜/ .inputrc中设置的configuration。 例如我在上面列出的所有shell中都有很好的vim模式,因为它们都在内部使用gnu readline。 如果有一个js的shell在内部也使用gnu readline,那么它会和我的其他shell一起使用。

使用grunt-shell和grunt-ssh运行的Grunt同步任务

我有一段时间试图完成我正在运行的部署脚本。 它可能有一半的时间,这是令人沮丧的,因为我主要使用我没有写的代码。 我真的希望有一个较低级别的解决方法,我可以执行。 基本上发生了什么是我试图做5个任务,最终发生asynchronous。 似乎没有一个合理的方法来阻止他们。 那些是 一个静态的文件构build/编译过程 压缩过程 一个ftp传递过程 一个解压缩过程 权限pipe理和重新链接过程 有时,压缩过程通过构build/编译过程中途发生,有时ftp传递失败,有时重链过程尝试链接到尚不存在的接收端的文件夹,并且失败。 有没有人使用grunt进行部署? 有什么build议可以用来解决这个废话? 这完全毁了我。

提示input使用grunt-shell插件

我有一个脚本,我试图用grunt-shell插件运行。 这个脚本使用read -p "enter foo" bar提示input。 当我运行它时,我得到一个正确接受我的input的光标,但我没有看到“inputfoo”。 我尝试修改grunt-shellconfiguration,将err,stderr和stdout转储到控制台,但是一旦命令完成,它们全都变空。 阅读手册页说-p标志“只有当input来自terminal时,才显示提示”,这似乎是我的问题,因为节点正在调用提示符,但读取命令正在我的执行terminal,我正在input一个terminal,所以为什么不这样做? 所以,我的问题是,有没有什么办法提示用户从grunt-shell插件input? 另外,作为一个PS,是的,我知道只要回应提示并处理下面的input就很容易了,但是要承认这是事物的原理。

是否可以从节点包的`bin`命令访问npmconfiguration设置?

我想添加一些默认configuration到shell工具,用户可以使用npm config来覆盖。 它看起来像这是可能的,但这只适用于npm script 不是我的包的二进制文件,由"bin"下面指定。 的package.json { "name": "tmp", "scripts": { "test": "node index.js" }, "bin" : { "tmp" : "index.js" }, "config": { "foo" : 123 } } index.js #!/usr/bin/env node console.log(process.env.npm_package_config_foo); 我的企图 调用二进制 为此设置是在包中运行npm link以创build该包的全局链接 $ tmp undefined 将脚本传递给节点 $ node ./index.js undefined 调用npm script ⫸ 只有这个工程 $ npm test > tmp@ test […]

如何使用shell脚本文件运行我的节点脚本

我正在使用节点创build个人网站。 这将帮助我跟踪正在阅读的电子书。 目前,我需要cd到项目文件夹并运行node server.js 。 我想我会创build一个shell脚本,然后我只需要双击文件。 该文件将具有以下代码: #!/usr/bin/env bash node server.js 我得到的第一个错误是在根目录下找不到server.js ,我通过input完整的后面来解决这个问题,然后对应用程序中的所有依赖关系引发相同的错误 (我从来没有使用shell脚本) 我正在尝试做什么?

在php中执行gulp返回错误,但在shell中工作

从php脚本执行gulp有一个奇怪的问题。 testing: browser: http://server.com/pull.php <- does not work shell: php pull.php <- works shell: gulp <- works 这是我的设置: Ubuntu 12.04.5 LTS Node v5.6.0 PHP 5.5.30-1+deb.sury.org~precise+1 (cli) (built: Oct 4 2015 16:14:34) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies […]

无法从shell / robomongo连接mongodb。 但通过nodejs代码连接

我曾尝试使用以下命令从shell连接mongodb。 mongo xxxxx.mongolab.com:47612/dbname -u user -p password 但是我收到错误: 错误:18身份validation失败 。 当我尝试从Robomongo连接时,同样的授权失败。 但是当我试图从我的NodeJS代码连接mongodb时,它的工作是完美的。 NodeJS代码: mongoose.connect('mongodb://user:password@xxxxx.mongolab.com:47612/dbname', function (err){ if (err) throw err; console.log("db connected") }); 此外,我试图将mongod.conf中的绑定IP从127.0.0.1更改为0.0.0.0 问题依然存在。

运行npm脚本时使用哪个shell npm?

我在通过ConEmu运行鱼壳的Windows上。 鱼默认不承认“&&”运营商, 但是有这样的: "scripts": { "test": "echo 'a' && echo 'b'" } 并运行“npm run test”正在工作。 所以我认为它必须使用默认的“cmd”,这就是npm config ls -l | grep shell 然而, npm config ls -l | grep shell说,当我把“testing”脚本改为: "scripts": { "test": "echo 'a' && ls" } 这也可以工作,而ls显然不支持“cmd”。 这到底是怎么回事? 😲

咕噜声 – 是否有可能只有一次运行的任务?

有一个特殊的任务,我只想运行一次,然后保证它永远不会再运行。 有没有人做过这个? 我正在考虑使用grunt.event.once(…),或者在postinstall上使用shell脚本检测文件夹或文件,但是这两种方式都会在gruntfile.js中留下任何可能随时被覆盖的任务文件。 在一个非常简单的层面上,它会做这样的事情: grunt.registerTask('setup', [ 'mkdir' // run some setup tasks ]); grunt.event.once('setup', function() { // some how do what's below here so it can't be done again // so not available in config for reuse and possibly overwriting // modified files grunt.task.run([ 'bowercopy:src_codeigniter' ]); }); 这甚至可能在Grunt? 我知道这只是一个任务跑步者,在这种情况下,我只是想让它跑一次。