O Bash Shell URL criado com variáveis está ausente após a inserção atrás de http: //

0

Eu tenho um script de shell bash que executa um comando curl que é feito de variáveis:

# Variables
URL="http://$UN:$PW@localhost:8080/rest/v1"

O $ UN e o $ PW são preenchidos por um comando de leitura adicional dentro do script quando um usuário faz login ...

# Login
echo "Please enter your username and password."
read -p "Username: " UN
read -s -p "Password: " PW

vamos supor que no login o nome de usuário está definido como "alice" e a senha definida como algo seguro como "senha".

O problema que tenho é que as variáveis $ UN e $ PW aparecem vazias quando o $ URL é construído, ou seja, o URL deve ficar assim: link mas em vez disso estou vendo link

se eu fizer eco das variáveis no script, poderei ver que as variáveis UN e PW foram preenchidas:

echo $UN

retorna alice

echo $PW

retorna a senha, mas se eu

echo $URL

eles estão perdendo

Eu suspeito que isso tenha algo a ver com o final / no http: // mas eu posso estar errado. Note que tentei alterar a inserção das variáveis na variável $ URL de maneiras diferentes ...

"http://${UN}:${PW}@localhost:8080/rest/v1"

"http://"$UN":"$PW"@localhost:8080/rest/v1"

"http://"${UN}":"${PW}"@localhost:8080/rest/v1"

... mas os resultados são os mesmos.

Qualquer conselho seria muito apreciado!

    
por Ben 28.07.2017 / 17:40

1 resposta

3

Você precisa definir a variável $ URL depois de $ UN e $ PW, assim:

echo "Please enter your username and password."
read -p "Username: " UN
read -s -p "Password: " PW
URL="http://${UN}:${PW}@localhost:8080/rest/v1"
    
por 28.07.2017 / 17:51

Tags