파일에 저장된 문자열을 고려하면 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.js
가 my
.