Bash에서 다음을 수행할 때:
foo="*"
echo $foo
*
현재 폴더의 내용으로 확장됩니다 . 텍스트만 인쇄되도록 하려면 어떻게 해야 합니까 *
?
그런데 일반에서도 같은 일이 발생하여 echo "$foo"
현재 폴더의 내용을 인쇄합니다.
답변1
정의해보자 foo
:
$ foo="*"
이제 따옴표 없이 echo를 시도해 보세요.
$ echo $foo
File1 File2
*
라는 파일 이름 목록으로 바꾸십시오 .경로명 확장. 이는 큰따옴표로 억제할 수 있습니다.
$ echo "$foo"
*
또한 큰따옴표를 사용하면버팀대 확장,물결표 확장, 그리고분사.
완전성을 위해 작은따옴표를 사용하여 echo를 시도해보세요.
$ echo '$foo'
$foo
작은따옴표는 쉘이 대체하는 것을 완전히 방지합니다.