私は次のコマンドを使用しています:
curl -I "http://localhost:8080/jobname/buildWithParameters?ENVIRONMENT=UPPER_DEV&IP=$HOSTNAME"
私はそれの一部を提供します:
echo '"$HOSTNAME"'
引用符内に出力が期待されます"abcxyz.dev.int"
。
しかし、私はこの結果を得ます。
"$HOSTNAME"
私のホスト名の値を取得できませんでした。この問題を解決するのに役立ちます。
答え1
一重引用符は、変数が拡張されないことを意味します。
$ echo '$HOSTNAME'
$HOSTNAME
引用した変数を印刷する必要がある場合は簡単です(とにかく全体的に良くなった)使用printf
:
$ printf '"%s"\n' "$HOSTNAME"
"myHost"
もしあなたなら〜しなければならないを使用するには、echo
次のようにします。
$ echo "\"$HOSTNAME\""
"myHost"
またはこれ:
$ echo '"'"$HOSTNAME"'"'
"myHost"
これがあなたが表示したコマンドとどのような関係があるのか理解できません。ただし、コマンドで引用しcurl
たい場合は、次のようにURL全体を引用するだけで十分です。$HOSTNAME
curl
curl -I "http://localhost:8080/jobname/buildWithParameters?ENVIRONMENT=UPPER_DEV&IP=$HOSTNAME"
または、サーバーに引用符が必要な場合は、次のようにします。
curl -I "http://localhost:8080/jobname/buildWithParameters?ENVIRONMENT=UPPER_DEV&IP='$HOSTNAME'"
しかし、本当に二重引用符が必要な場合は、次のことを試してください。
curl -I "http://localhost:8080/jobname/buildWithParameters?ENVIRONMENT=UPPER_DEV&IP=\"$HOSTNAME\""