简体   繁体   中英

curl download with username and password in varible

Hi I am writing a auto script in test.sh , attempting to download a file. It works fine when I use all hard code string. But it does not work with variables. Belong are my code example:

#!/bin/bash
USER="admin"
PWD="adminpass"


curl -v -k  -u ${USER}:${PWD} ${NEXUS_URL}/${SP1}/60/${SP1}-60.zip --output ${SP1}-60.zip

Above code not working not able to download my file, but if I put it as :

curl -v -k  -u "admin":"adminpass" ${NEXUS_URL}/${SP1}/60/${SP1}-60.zip 
--output ${SP1}-60.zip

Then it works. So how do I get the variable credential working with this curl command? Thanks

Option 1

The parameter expansion will not include the double quotes. You can use:

#!/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

Option 2

Alternatively, you can create a .netrc file and use curl -n as follows:

Documentation from https://ec.haxx.se/usingcurl-netrc.html

  1. Create .netrc containing the following and place it in your home directory.

     machine http://something.com login admin password adminpass 
  2. Run the command

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

    curl will automatically look for the .netrc file. You can also specify the file path with curl --netrc-file <netrc_file_path>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM