卷曲下载用户名和密码

时间:2018-07-25 13:43:14

标签: linux bash shell unix curl

嗨,我正在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命令获取可变凭据? 谢谢

1 个答案:

答案 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的文档

  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>

  3. 指定文件路径