当前目录包含file1和file2。你如何解释这个输出:
[root@server test]# command='*';
[root@server test]# echo $command
file1 file2
为什么*会被扩展?我希望它不是因为它被引用了。
答案1
command='*'
确实如您所期望的那样将 的值设置$command
为文字*
。但是,当您运行时echo $command
, 的值$command
将扩展为*
,从而使您的命令成为echo *
.然后通配符会像往常一样扩展。为了防止这种情况,请引用您提供给的参数echo
:
$ v='*'
$ echo "$v"
*