考虑存储在文件中的字符串,我需要通过 NPM 读取该字符串并将其传递给 Node 脚本。但文件中的字符串包含$
, 并被解释为变量,并在传递给命令之前被替换。
注意:字符串存储在文件中的原因是它不应该出现在历史文件中。
# store and then read the variable
echo 'my$tring' > x
export X=`cat x`
./do-it -x $X
./do-it
好像:
echo $@
npm start -- $@
脚本start
如下package.json
所示:
node ./dist/index.js
如果我将“my$tring”存储在文件中x
,并一路输出内容,它将如下所示:
./do-it -x $X
-x my$tring # Result of echo $@ shows includes the $ -- good
> start # Node script "start"
> node ./dist/index.js "-x" "my$tring" # Command being executed by NPM (bad)
my # Result of console.log() with the 2nd arg
在上面,请注意如何node ./dist/index.js "-x" "my$tring"
对参数进行双引号,从而消耗$tring
第二个参数的部分。这就是我需要解决的问题,因为它导致发送到的最终参数index.js
是 just my
。