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

wget stdout转换为bash变量和特殊字符,bash,variables,special-characters,wget,Bash,Variables,Special Characters,Wget,我想在bash脚本中使用wget。 我想将wget的输出存储在一个变量中以供进一步处理(为了避免每次我想对输出应用一些格式时都发出wget请求)。 以下是我尝试过的: data=$(wget -qO- mysite.com) 问题是:mysite.com的html包含与bash解释器相关的特殊字符。因此,输出在某个地方被截断 我怎样才能摆脱这一切? 谢谢如果您想将其作为一个变量,请用引号将输出括起来: data="$( wget -qO- mysite.com )" 要转义特殊字符,可以使用

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

data=$(wget -qO- mysite.com)
问题是:mysite.com的html包含与bash解释器相关的特殊字符。因此,输出在某个地方被截断

我怎样才能摆脱这一切?
谢谢

如果您想将其作为一个变量,请用引号将输出括起来:

data="$( wget -qO- mysite.com )"
要转义特殊字符,可以使用sed或printf转义它们

data="$( printf %q `wget -qO- mysite.com` )"
但是,将输出保存到文件中可能是更好的做法

 wget -qO- mysite.com > mysite.html

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

另一种方法是将输出保存在文件中,然后使用cat读取该文件。类似于:wget-q0-syte.com>文件。然后猫文件|你想做什么。。。在bash中使用双引号并不能解决这个问题。特殊字符将由bash在双引号内解释。。。我想我将不得不使用一个tmp文件