変数を使用して生成されたBash Shell URLは、http://の後に挿入した後に失われます。

変数を使用して生成されたBash Shell URLは、http://の後に挿入した後に失われます。

変数で構成されたcurlコマンドを実行する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"

おすすめ記事