通过脚本在命令行中设置NODE_PATH

时间:2016-09-23 09:41:54

标签: node.js bash

/home/karl/myapp/path.sh:

#!/bin/bash
currentDir=$(
  cd $(dirname "$0")
  pwd
) 

echo $currentDir

上面的脚本回显了绝对路径。我想使用echo&#d; d值设置NODE_PATH变量,如下所示。

NODE_PATH=path.sh ./node_modules/.bin/mocha -r babel-register -r babel-polyfill --reporter spec

目前NODE_PATH实际设置为字符串" path.sh"而不是它回声的绝对路径。

所以我希望结果与NODE_PATH=/home/karl/myapp/ ./node_modules/.bin/mocha -r babel-register -r babel-polyfill --reporter spec相同。

有什么想法吗?

我还尝试了以下内容:bash path.sh | NODE_PATH="$currentDir" ./node_modules/.bin/mocha -r babel-register -r babel-polyfill --reporter spec

3 个答案:

答案 0 :(得分:1)

默认情况下,它将被视为字符串。您需要在$(COMMAND)内部,就像您的情况"$(sh path.sh)"一样。所以完整的命令将是

NODE_PATH="$(sh path.sh)" ./node_modules/.bin/mocha -r babel-register -r babel-polyfill --reporter spec

希望这会对你有所帮助

答案 1 :(得分:0)

您可以通过执行以下命令来执行此操作:

NODE_PATH=`./p.sh`'./node_modules/.bin/mocha -r babel-register -r babel-polyfill --reporter spec'

``之间的任何内容基本上都是执行该特定命令,然后追加所需的内容。

答案 2 :(得分:0)

在Arif Khans的帮助下,我得出了以下三点:

NODE_PATH="$(dirname $(readlink -f ./path.sh))" ./node_modules/.bin/mocha -r babel-register -r babel-polyfill --reporter spec

NODE_PATH="$(bash path.sh)" ./node_modules/.bin/mocha -r babel-register -r babel-polyfill --reporter spec

NODE_PATH="$(pwd)" ./node_modules/.bin/mocha -r babel-register -r babel-polyfill --reporter spec