如何处理shell脚本中的引号

art*_*ved 1 linux shell

这个问题我能够获得oracle jdk的wget url.我打算在脚本vis中使用它

wget_opts="-c --no-check-certificate --no-cookies --header --load-cookies="Cookie: oraclelicense=accept-securebackup-cookie""
jdk_download_url="http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-x64.tar.gz"

/usr/bin/wget $wget_opts $jdk_download_url
Run Code Online (Sandbox Code Playgroud)

当我回显上面的命令时,它显示正常,并能够正确下载该文件.但是在脚本中运行命令时,我得到了以下内容

--2014-06-04 14:19:43--  http://oraclelicense=accept-securebackup-cookie%22/
Resolving oraclelicense=accept-securebackup-cookie"... failed: Name or service not known.
wget: unable to resolve host address “oraclelicense=accept-securebackup-cookie"”
--2014-06-04 14:20:03--  http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-x64.tar.gz
Resolving download.oracle.com...
Run Code Online (Sandbox Code Playgroud)

Wget获取错误的URL.

我该如何纠正?

gle*_*man 5

使用数组:

wget_opts=( -c 
            --no-check-certificate 
            --no-cookies 
            --header 
            --load-cookies="Cookie: oraclelicense=accept-securebackup-cookie" 
          )
jdk_download_url="http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-x64.tar.gz"

# use the exact quoting below
/usr/bin/wget "${wget_opts[@]}" "$jdk_download_url"
Run Code Online (Sandbox Code Playgroud)