foo="*"에서 전역 확장 방지 echo $foo [duplicate]

foo="*"에서 전역 확장 방지 echo $foo [duplicate]

Bash에서 다음을 수행할 때:

foo="*"
echo $foo

*현재 폴더의 내용으로 확장됩니다 . 텍스트만 인쇄되도록 하려면 어떻게 해야 합니까 *?

그런데 일반에서도 같은 일이 발생하여 echo "$foo"현재 폴더의 내용을 인쇄합니다.

답변1

정의해보자 foo:

$ foo="*"

이제 따옴표 없이 echo를 시도해 보세요.

$ echo $foo
File1 File2

*라는 파일 이름 목록으로 바꾸십시오 .경로명 확장. 이는 큰따옴표로 억제할 수 있습니다.

$ echo "$foo"
*

또한 큰따옴표를 사용하면버팀대 확장,물결표 확장, 그리고분사.

완전성을 위해 작은따옴표를 사용하여 echo를 시도해보세요.

$ echo '$foo'
$foo

작은따옴표는 쉘이 대체하는 것을 완전히 방지합니다.

관련 정보