将stdout转换为bash变量和特殊字符

时间:2014-07-27 23:34:23

标签: bash variables special-characters wget

我想在bash脚本中使用wget。 我想将wget的输出存储在变量中以便进一步处理(为了在每次我想对输出应用一些格式时不发出wget请求)。 这是我试过的:

data=$(wget -qO- mysite.com)

问题是:mysite.com的html包含关于bash解释器的特殊字符。因此,输出在某处被截断。

我怎样摆脱这个? 感谢

1 个答案:

答案 0 :(得分:1)

如果您希望将此变量包含在引号中的输出:

data="$( wget -qO- mysite.com )"

要转义特殊字符,可以使用sed或printf来转义它们

data="$( printf %q `wget -qO- mysite.com` )"

但是,将输出保存到文件

可能更好
 wget -qO- mysite.com > mysite.html

然后,您可以在不需要时删除mysite.html。如果您丢失了与站点的连接或者不希望使用http请求进行调试,这将有所帮助。

相关问题