변수를 사용하여 생성된 Bash Shell URL은 http:// 뒤에 삽입한 후 손실됩니다.

변수를 사용하여 생성된 Bash Shell URL은 http:// 뒤에 삽입한 후 손실됩니다.

변수로 구성된 컬 명령을 실행하는 bash 쉘 스크립트가 있습니다.

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

사용자가 로그인하면 스크립트의 읽기 명령으로 $UN 및 $PW가 채워집니다.

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

로그인 시 사용자 이름은 "alice"로 설정되고, 비밀번호는 "password" 및 기타 보안 콘텐츠로 설정되어 있다고 가정합니다.

내가 겪고 있는 문제는 $URL을 작성할 때 $UN 및 $PW 변수가 비어 있는 것으로 나타난다는 것입니다. 즉, URL은 다음과 같아야 합니다. http://alice:password@localhost:8080/rest/v1하지만 내가 보는 건http://:@localhost:8080/rest/v1

스크립트의 변수를 에코하면 UN 및 PW 변수가 채워지는 것을 볼 수 있습니다.

echo $UN

앨리스에게 돌아가기

echo $PW

비밀번호를 반환하지만 만약 내가

echo $URL

그들은 실종됐다

나는 이것이 http://의 마지막 /와 관련이 있다고 생각하지만 틀릴 수도 있습니다. 참고 $URL 변수에 변수를 삽입하는 방법을 다른 방법으로 변경해 보았습니다.

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

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

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

...하지만 결과는 같습니다.

어떤 조언이라도 대단히 감사하겠습니다!

답변1

$URL 변수를 설정해야 합니다.뒤쪽에아래와 같이 $UN 및 $PW:

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

관련 정보