/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
答案 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