変数で構成された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"