curl下载,用户名和密码可变



嗨,我正在test.sh中编写一个自动脚本,试图下载一个文件。当我使用所有的硬代码字符串时,它工作得很好。但它不适用于变量。Belong是我的代码示例:

#!/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命令一起工作呢?感谢

选项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

  1. 创建包含以下内容的.netrc并将其放置在主目录中。

    machine http://something.com
    login admin
    password adminpass
    
  2. 运行命令

    curl -n -k --output ${SP1}-60.zip
    

    curl将自动查找.netrc文件。您也可以使用curl --netrc-file <netrc_file_path>指定文件路径

最新更新