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シェルは変数を呼び出す前にその値に対して(トークン化および)ファイル名を生成しますecho

これを防ぐには、二重引用符変数拡張を使用してください。

echo "$a"

関連:

答え2

電話する必要があるので:

echo ".*"

拡張を防ぐには、もちろん、次のように呼び出す必要があります。

a=".*"
echo "$a"

関連情報