嗨,我正在test.sh中编写一个自动脚本,试图下载文件。当我使用所有硬代码字符串时,它都可以正常工作。但这不适用于变量。属于我的代码示例:
#!/bin/bash
USER="admin"
PWD="adminpass"
curl -v -k -u ${USER}:${PWD} ${NEXUS_URL}/${SP1}/60/${SP1}-60.zip --output ${SP1}-60.zip
以上代码无法正常工作,无法下载我的文件,但是如果我将其保存为:
curl -v -k -u "admin":"adminpass" ${NEXUS_URL}/${SP1}/60/${SP1}-60.zip
--output ${SP1}-60.zip
然后它起作用。那么,如何使用此curl命令获取可变凭据? 谢谢
答案 0 :(得分:0)
选项1
参数扩展将不包含双引号。您可以使用:
#!/bin/bash
USER='"'admin'"' #single quote, double quote, single quote
PASS='"'adminpass'"'
curl -v -k -u ${USER}:${PASS} ${NEXUS_URL}/${SP1}/60/${SP1}-60.zip
选项2
或者,您可以创建一个.netrc文件并按如下所示使用curl -n:
https://ec.haxx.se/usingcurl-netrc.html的文档
创建包含以下内容的.netrc并将其放在您的主目录中。
machine http://something.com
login admin
password adminpass
运行命令
curl -n -k --output ${SP1}-60.zip
curl将自动查找.netrc文件。您也可以使用curl --netrc-file <netrc_file_path>