나는 다음 명령을 사용하고 있습니다 :
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\""