달러 기호를 그대로 유지하면서 파일에서 문자열을 읽고 명령에 전달합니다.

달러 기호를 그대로 유지하면서 파일에서 문자열을 읽고 명령에 전달합니다.

파일에 저장된 문자열을 고려하면 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$string"을 파일에 저장 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.jsmy.

관련 정보