foo="*" からのグローバル拡張防止 echo $foo [duplicate]

foo=

Bashで以下を行うとき:

foo="*"
echo $foo

*現在のフォルダの内容に展開されます。テキストのみを印刷するにはどうすればよいですか*

ところで、通常でも同じことが発生し、echo "$foo"現在のフォルダの内容を印刷します。

ベストアンサー1

定義してみましょうfoo

$ foo="*"

今引用符なしでechoを試してみてください。

$ echo $foo
File1 File2

*というファイル名のリストに置き換えてください。パス名拡張。これは二重引用符で抑制できます。

$ echo "$foo"
*

また、二重引用符を使用すると支柱の拡張チルダ拡張噴射

完全性のために一重引用符を使用してechoを試してください。

$ echo '$foo'
$foo

一重引用符はシェルが置き換えることを完全に防ぎます。

おすすめ記事