shell脚本中的星号转义

解决办法:

echo $i 要加引号:
echo "$i"

 

 我在shell中使用变量来保存一个sql语句,代码如下:

sql="select * from mytable"
    echo "execute sql =" ${sql}

 得出结果如下:execute sql = select db2.sh db2.sh.20140615103542.log db2.sh.20140615103553.log db2.sh.20140615103608.log  from mytable。很明显,shell把*解析成了当前目录文件的列表

我又换成:

sql="select \* from mytable"
    echo "execute sql =" ${sql}

得出结果如下:execute sql = select \* from mytable ,没有转义成功

再换成这样:

sql="select * from mytable"
    echo "execute sql =""${sql}"

就成功了,得出结果:execute sql = select * from mytable

你可能感兴趣的:(shell脚本中的星号转义)