Bash脚本字符串扩展

时间:2013-11-05 14:15:59

标签: bash curl scripting

我遇到了在bash中输入以下命令的问题:

RESPONSE=`curl -k "$line" --cert=\"$certfile:$certpassfile\" --silent --write-out --head '%{http_code}\n'`

其中$line是网址,$certfile是pem文件的路径,$certpassfile是证书密码。

我收到以下错误:

  

++ curl -k url'--cert =“/ certpath:certpassword”' - silent --write-out --head'%{http_code} \ n'

     

curl:选项--cert =“/ certpath:certpassword”:未知

当我不对证书文件周围的引号加倍并且不转义它时,命令如下所示:

RESPONSE=`curl -k "$line" --cert="$certfile:$certpassfile" --silent --write-out --head '%{http_code}\n'`

我收到相同的错误,但路径不同:

  

++ curl -k url --cert = / certpath:certpassword --silent --write-out --head'%{http_code} \ n'curl:option --cert = / certpath:certpassword:未知

我知道如何在其中创建命令应该是:

curl -k url --cert="/certpath:certpassword" --silent --write-out --head '%{http_code}\n'

1 个答案:

答案 0 :(得分:2)

我认为你应该在--cert和值之间删除等号:

RESPONSE=$(curl -k "$line" --cert "$certfile:$certpassfile" \
                --silent --write-out --head '%{http_code}\n')