Quando estou atribuindo .* a uma variável, está atribuindo todos os arquivos ocultos.
[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
Espero abaixo a saída:
.*
Como escapar disso, obrigado.
Eu tentei abaixo e dá saída
[root@s1 ~]# a='".*"'
[root@s1 ~]# echo $a
".*"
".*"
mas não
.*
Já que você precisa ligar:
para não expandir isso, você também precisa chamar:
Você não está fazendo nada errado em sua atribuição da string
.*
à variável, mas como você usa a variável sem aspas comecho
, o shell executará (divisão de palavras e) geração de nome de arquivo (globbing) em seu valor antes de chamarecho
.Para evitar isso, use aspas duplas na expansão da variável:
Relacionado: