Bash 스크립트에서 따옴표로 묶인 매개변수 값을 얻는 방법은 무엇입니까?

Bash 스크립트에서 따옴표로 묶인 매개변수 값을 얻는 방법은 무엇입니까?

나는 다음 명령을 사용하고 있습니다 :

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을 인용하는 것으로 충분합니다.$HOSTNAMEcurl

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\""

관련 정보