따옴표 안의 하위 쉘

따옴표 안의 하위 쉘

저는 다음과 같은 작은 쉘 스크립트를 작성하고 있습니다.

curl -X POST --header 'Bearer "$(printf  user:pass | base64)"' 'https://api.com/v1/auth'

디버깅을 위해 echo로 전환합니다.

echo 'Bearer "$(printf  remote-key-sync:2klic-hlqDZPGmqJTwhqVkPubld9ReXAnQSks | base64)"' 

그러나 결과는 다음과 같습니다.

Bearer "$(printf  remote-key-sync:2klic-hlqDZPGmqJTwhqVkPubld9ReXAnQSks | base64)"

--header 'Bearer myBase64String'을 전송하고 하위 쉘 결과를 작은따옴표 안에 넣도록 컬 명령을 업데이트하려면 어떻게 해야 합니까?

답변1

코드를 리팩터링하는 것부터 시작하세요.

bearer="Bearer \"$(printf user:pass | base64)\""
curl -X POST --header "$bearer" 'https://api.com/v1/auth'

이제 디버그할 때 매개변수를 다시 인용할 필요가 없습니다.

echo curl -X POST --header "$bearer" 'https://api.com/v1/auth'

관련 정보