星号(*)
当用于shell变量时,
[root@zabbix_nuc ~]# sql='select * from mysql.user'
[root@zabbix_nuc ~]# echo "$sql"
select * from mysql.user
[root@zabbix_nuc ~]# echo $sql
select 2018-07-18.log anaconda-ks.cfg speedtest.py test.sh from mysql.user
[root@zabbix_nuc ~]# sql="select * from mysql.user"
[root@zabbix_nuc ~]# echo "$sql"
select * from mysql.user
[root@zabbix_nuc ~]# echo $sql
select 2018-07-18.log anaconda-ks.cfg speedtest.py test.sh from mysql.user
[root@zabbix_nuc ~]# set -f // # 关闭通配符
[root@zabbix_nuc ~]# echo $sql
select * from mysql.user
[root@zabbix_nuc ~]# set +f //
[root@zabbix_nuc ~]# echo $sql # 开启通配符
select 2018-07-18.log anaconda-ks.cfg speedtest.py test.sh from mysql.user
[root@zabbix_nuc ~]#
由上可知:
变量定义的时候是没有问题的:当定义时单引号和双引号都可以;执行的时候被解释了:echo时要把变量括起来,否则星号(*)会代替当前目录下的文件和目录。