예를 들어, $PATH
및$HOME
내가 입력 echo $PATH
하면 my 반환 $PATH
하지만 $PATH
실제 변수가 의미 하는 단어 가 아닌 단어를 에코하고 싶습니다 echo "$PATH"
.
답변
당신은 달러를 탈출해야합니다 $
. :
echo \$PATH
$PATH
또는 작은 따옴표로 묶으십시오.
echo '$PATH'
$PATH
이렇게하면 단어가 쉘에서 해석되지 않습니다.
답변
$
대부분의 쉘 구문에서 매우 특별한 문자입니다. Bourne과 같은 쉘만 살펴보면 다음을 소개하는 데 사용됩니다.
- 마찬가지로 매개 변수 확장
$#
,$var
,${foo:-bar}
- 에서와 같은 명령 대체
$(logname)
(${ logname;}
서브 쉘을 피하기 위해 일부 쉘 에서도 ) - 에서와 같이 산술 확장
$((1+1))
($[1+1]
일부 쉘에서도). $'\n'
또는 같은 쉘에서 다른 형태의 인용$"localized string"
.
마지막 경우를 제외하고, 그 확장은 / 대체 여전히 큰 따옴표 내부에서 발생하는 (내부 $"..."
에 bash
또는 ksh93
)
이를 $
특별하게 취급 하지 않으려면 다음 중 하나로 인용해야합니다.
- 작은 따옴표 :
echo '$PATH'
또는echo '$'PATH
. 대부분의 쉘에서 모든 문자 (자체 제외)를 이스케이프하므로 일반적으로 사용하려는 문자입니다. - 블랙 슬래시 :
echo \$PATH
. 또한 큰 따옴표 안에 :echo "\$PATH"
- 일부 쉘에서는 다른 인용 연산자 :
echo $'$PATH'
,echo $'\44PATH'
(ASCII 호환 문자 세트를 가정),echo $'\u0024'
또는 위에 나열된 유효한 확장 형식의 일부가 아닌지 확인하십시오.
echo "$"PATH
. 일부 쉘 은 따옴표 형태를 좋아echo $""PATH
,echo $"PATH"
ksh93
하고bash
지원 하기 때문에 피해야$"..."
합니다.echo $``PATH
. 그것이 가능하다는 것을 보여주는 것을 제외하고 그 이유를 사용하고 싶은 이유는 없습니다.echo "${$+$}PATH"
다른 복잡한 것들 …
또는 $
다른 방법으로 출력 할 수 있습니다 .
- 유닉스 호환
echo
:echo '\044PATH'
(일부 다른echo
필요echo -e '\044PATH'
) printf '\44PATH\n'
-
고양이 << \ EOF $ PATH EOF
이러한 백 슬래시는 어떻게 쉘에 특별하기 때문에 어떻게 인용되어야하는지 주목하십시오.
할 수있는 방법이 많지만 echo '$PATH'
여기 이외의 다른 것을 사용하고 싶은 좋은 이유는 없다는 점이 분명해졌습니다 .
답변
큰 따옴표 안에 리터럴 $가 문제가 될 수 있습니다. 다음과 같이 큰 따옴표 외부에서 $를 생성하여 수행 할 수 있습니다.
echo "My terminal is $term, first file found in /dev is </dev/`ls /dev | head -n 1`>, the
dollar symbol is '"`echo '$'`"', and a newspaper costs "`echo '$'`"2.50."
or like this:
echo "$term is the value of "'$term'
산출:
My terminal is xterm, first file found in /dev is </dev/acpi>, the dollar symbol
is '$', and a newspaper costs $2.50.
xterm is the value of $term
답변
사용하다:
echo ''\$PATH'' >> output.txt
작동합니다.