引用されていても bash ワイルドカード拡張

引用されていても bash ワイルドカード拡張

現在のディレクトリにはfile1とfile2が含まれています。この出力をどのように解釈しますか?

[root@server test]# command='*';
[root@server test]# echo $command
file1 file2

*が拡張されるのはなぜですか?引用された内容ではないことを願っています。

答え1

command='*'$command値をリテラルに設定すると、期待どおりに正しく動作します*。ただし、を実行すると、のecho $command値がに拡張され、コマンドが$commandに拡張されます。これにより、ワイルドカードが通常どおり拡張されます。これを回避するには、次のトピックで指定したパラメータを引用してください。*echo *echo

$ v='*'
$ echo "$v"
*

関連情報