.*를 변수에 할당하면 모든 숨겨진 파일이 할당됩니다.
[root@s1 ~]# a=".*"
[root@s1 ~]# echo $a
. .. .bash_history .bash_logout .bash_profile .bashrc .cache .config .cshrc .history .lesshst .mozilla .pki .rnd .ssh .tcshrc .viminfo .virsh .xauth6SHzeY .xauthhAVYfm .xauthI6Cte3 .xauthk7ea35 .xauthlXtiZ9 .Xauthority .xauthQm7mJ8 .xauthTpWbxP .xauthY9KsdC
다음과 같은 결과가 나올 것으로 예상됩니다.
.*
탈출 방법, 감사합니다
나는 아래에서 시도했고 출력을 제공합니다
[root@s1 ~]# a='".*"'
[root@s1 ~]# echo $a
".*"
".*"
하지만
.*
답변1
.*
변수에 문자열을 할당할 때 잘못된 것은 없지만 따옴표 없이 변수를 사용하고 있으므로 echo
쉘은 변수를 호출하기 전에 해당 값에 대해 (토큰화 및) 파일 이름 생성(globbing)을 수행합니다 echo
.
이를 방지하려면 큰따옴표 변수 확장을 사용하세요.
echo "$a"
관련된:
답변2
전화해야 하므로:
echo ".*"
확장을 방지하려면 물론 다음을 호출해야 합니다.
a=".*"
echo "$a"