Bashで以下を行うとき:
foo="*"
echo $foo
*
現在のフォルダの内容に展開されます。テキストのみを印刷するにはどうすればよいですか*
?
ところで、通常でも同じことが発生し、echo "$foo"
現在のフォルダの内容を印刷します。
答え1
定義してみましょうfoo
:
$ foo="*"
今引用符なしでechoを試してみてください。
$ echo $foo
File1 File2
*
というファイル名のリストに置き換えてください。パス名拡張。これは二重引用符で抑制できます。
$ echo "$foo"
*
また、二重引用符を使用すると支柱の拡張、チルダ拡張と噴射。
完全性のために一重引用符を使用してechoを試してください。
$ echo '$foo'
$foo
一重引用符はシェルが置き換えることを完全に防ぎます。