첫 번째 경우 :
echo $'$foo'
어떤 에코 $foo( $내 에코 명령에서 첫 번째 가 삭제 되었음을 의미 )
첫 번째 $명령으로 실행됩니다. 에코는 인수 사이에 공백이 필요하지 않으며 인수 만 걸립니다.
따라서 echo는 $'$foo'확장되어 명령을 실행하고 (명령 $이 아니므로 무시합니다) echo '$foo'. 모든 ''것은 액면가로 취해 지거나 확장되지 않습니다. 원하는 것을 ''넣을 수 있으며 아무 일도 일어나지 않습니다.
바꿀 경우 $와 $$는 프로세스 ID를 메아리.
둘째:
echo $"$foo"
이것은 반향됩니다 pwd(이것은 bash가 $foo내 변수 인 값으로 확장됨을 의미합니다 )
""확장을 방해하지 않기 때문 입니다. ""일반적으로 비교할 값이 있는지 확인하는 데 사용됩니다.
비어있을 수있는 변수가있는 경우 (예 : grep결과 에서 나온) 다른 값 / 변수와 비교하려면 첫 번째 변수를에 넣어야합니다 "". 이를 통해 오류가 발생하는 빈 코드 섹션 (bash에서 볼 수 있음)이 아니라 항상 확인할 비교가 이루어집니다.
마지막으로 3 번입니다. 흥미 롭습니다.
echo $`$foo`
이 메아리 $~/scripts(인쇄 ~/scripts하지 않을 것으로 예상 $~/scripts)
(이 경우) echo가 $문자를 먼저 인쇄하기 때문 입니다. 백틱에 무언가를 넣으면 변수의 값이 명령으로 실행됩니다 (최신 버전의 bash에서 더 나은 방법은 $(command))
따라서 먼저 반향 $을 일으켜 실행되는 곳으로 확장 `$foo`되어 `pwd`돌아갑니다 ~/Scripts. 그러나 우리는 $이전 에 인쇄를 했으므로 전체 출력이 $~/Scripts됩니다.