bash에서 변수에 .* 값을 할당하는 방법

bash에서 변수에 .* 값을 할당하는 방법

.*를 변수에 할당하면 모든 숨겨진 파일이 할당됩니다.

[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"

관련 정보