달러 기호를 에코하는 방법은 무엇입니까? echo $PATH하면

예를 들어, $PATH$HOME

내가 입력 echo $PATH하면 my 반환 $PATH하지만 $PATH실제 변수가 의미 하는 단어 가 아닌 단어를 에코하고 싶습니다 echo "$PATH".



답변

당신은 달러를 탈출해야합니다 $. :

echo \$PATH
$PATH

또는 작은 따옴표로 묶으십시오.

echo '$PATH'
$PATH

이렇게하면 단어가 쉘에서 해석되지 않습니다.


답변

$대부분의 쉘 구문에서 매우 특별한 문자입니다. Bourne과 같은 쉘만 살펴보면 다음을 소개하는 데 사용됩니다.

  1. 마찬가지로 매개 변수 확장 $#, $var,${foo:-bar}
  2. 에서와 같은 명령 대체 $(logname)( ${ logname;}서브 쉘을 피하기 위해 일부 쉘 에서도 )
  3. 에서와 같이 산술 확장 $((1+1))( $[1+1]일부 쉘에서도).
  4. $'\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 

작동합니다.


답변