从文件中读取字符串并传递给命令,保持美元符号完整

从文件中读取字符串并传递给命令,保持美元符号完整

考虑存储在文件中的字符串,我需要通过 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

相关内容