2016-12-21 4 views
0

제목이 정확한지 확실하지 않습니다.변수 값을 리터럴 문자열로 인쇄하는 방법

C:\Windows\file.exe 
: 즉, 내가 화면에이보고 싶어,

var=C:\Windows\file.exe 

그리고 나는 그것이 리터럴 문자열 인 것처럼 값의 인쇄 싶습니다의 내가 문자열의 변수가 있다고 가정 해 봅시다

그러나 물론, 변수를 인쇄하는 일반적인 방법은 그렇게하지 않습니다

echo $var 
C:Windowsfile.exe 
echo "$var" 
C:Windowsfile.exe 
echo '$var' 
$var 

는 그렇게 할 수 있습니까?

+0

다시'bash' 또는'batch'을? – Inian

+0

Bash, 예를 신경 쓰지 마세요, 그냥 백 슬래시 사용법입니다. – NPS

+0

백 슬래시 문자가 무엇을 의미하는지 알고 있습니까? 어떤 운영 체제에서 – Jdamian

답변

3

문제는 나중에 변수를 평가할 때가 아니라 정의 시간에 쉘에서 백 슬래시를 조작하는 것입니다. 선언을 인용해야합니다. 즉, 어떤 쉘 이스케이프 메커니즘을 사용하여 \을 탈출해야합니다. 여기

당신이하고있는 일입니다 : 여기

$ var=C:\Windows\file.exe 

$ echo "$var" 
C:Windowsfile.exe 

당신이 필요로하는 무엇을 :

$ var='C:\Windows\file.exe' 

$ echo "$var" 
C:\Windows\file.exe 
+0

와우, 사실 저도 알아요. 나는 문자 그대로 인용 해 보았습니다. 명백하게. 어느 쪽인가 고마워. – NPS

+2

작은 따옴표의 특정 사용에 유의하십시오. 큰 따옴표로 묶인 문자열 안에 처리 된 세 개의 이스케이프 시퀀스가 ​​있습니다 :'\\'','\ $', \\. (명령 치환을 시작하지 않고 리터럴 역 인용 부호를 허용하는 첫 번째 명령, 매개 변수 확장을 시작하지 않고 리터럴'$'을 허용하는 두 번째 명령 및 마지막 역행 기호를 이스케이프하지 않고 리터럴 백 슬래시를 지정할 수있는 마지막 명령) – chepner