51Testing软件测试论坛
标题:
shell脚本生成临时shell脚本(脚本中可能带单引号或者双引号的字符串)
[打印本页]
作者:
听海——sky
时间:
2018-6-14 14:18
标题:
shell脚本生成临时shell脚本(脚本中可能带单引号或者双引号的字符串)
echo 重定向dst.sh
比如从数据库中获取到一个字符串,然后要写到一个文件。
a=xxx'ooo'hhhh'eeee$a
a就是从数据库中获取的字符串,比如将shell命令存到数据库,然后其他客户端从数据库中获取命令,写
到shell脚本,然后执行shell脚本,就可能出现问题。因为在shell中定义a,因为a是一个字符串,在shell
中 首先要保证a中的特殊字符不会被展开,比如最后的$a,那么a=xxx'ooo'hhhh'eeee$a就要变成字符
串,最外层就要用单引号括起来,即a='xxx'ooo'hhhh'eeee$a',但是因为字符串中可能含有单引号,就
会导致单引号匹配问题。
所以想要原封不动的将a通过shell写到一个shell文件,就必须在写之前将单引号'或者双引号"或者反斜杠
\替换成ascii码,然后在写的时候用echo -e 去转换ascii码
echo -e "\x22" 输出双引号
2.here document (cat << EOF)
cat <<EOF >dst.sh
str="content from mysql"
EOF
作者:
qqq911
时间:
2018-6-26 11:22
感谢分享·~
作者:
Miss_love
时间:
2020-12-29 10:57
感谢分享
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2