bash에서 따옴표 안에 달러 기호 보간


9

내가 쓴이 작은 테스트 스크립트를 실행 중입니다.

#!/bin/bash

TESTCASE=$@
testHarness <<runTest
$TESTCASE
runTest

명령 행에서 :

./test.sh "1092$212"

그러나 달러 기호가 제거되고 있습니다. 내가 탈출하면 효과가 있습니다. 그러나 큰 따옴표는이 작업을 수행하지 않아도된다고 생각했습니다. 누군가 무슨 일이 일어나고 있으며 어떻게 고칠 수 있는지 이해하도록 도와 줄 수 있습니까?


문제는 그것이 심지어 인간으로서도 모호하기 때문에 여기에서 원하는 것이므로 컴퓨터는 기회가 없다는 것입니다. 아마도 bash 인터프리터는 $ 212를 얻으려고합니다. 존재하지 않는 변수를 확장하려고하면 Bash가 자동으로 실패하므로 $가 제거됩니다. 예를 들어, 대괄호 안에 당신의 변수를 포장 "1,092 $ {2} 12"고려
브라이언 피터슨

답변:


18

변수는 여전히 큰 따옴표로 확장됩니다. 이 동작을 피하려면 대신 작은 따옴표를 사용해야합니다.


감사합니다. 작동합니다. 이것에 대한 이유가 있습니까?
Amir Afghani

8
예. 그렇게 설계되었습니다! 인용 된 문자열 내에서 변수를 확장 할 수있는 것이 실제로 매우 유용합니다. 기능입니다. 동작을 원하지 않으면 작은 따옴표를 사용하십시오.
Caleb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.