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"
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!
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"