컬과 base64를 하나의 명령으로 결합하시겠습니까?

컬과 base64를 하나의 명령으로 결합하시겠습니까?

서버에 대한 파일의 POST를 Base64로 인코딩하고 실행할 수 있는 명령으로 curl및를 결합하고 싶습니다 . base64나는 다음을 시도했습니다 :

curl 'http://localhost:5000/files' -X POST -H 'Content-Type: application/json' -d '{"file": "$(base64 hello.txt)"}'

"$(base64 hello.txt)"그러나 실행 결과를 대체하지 않고 문자열 리터럴을 게시할 뿐입니다 base64 hello.txt. 그럼 어떻게 하면 올바르게 할 수 있을까요?

답변1

간단한 따옴표를 사용하면 아무 것도 해석되지 않습니다.

~$ echo 'foo:$var bar:$(base64 foo) something'
foo:$var bar:$(base64 foo) something

설명을 원하면 인용을 해제해야 합니다.

~$ echo 'foo:'$var' bar:'$(base64 foo)' something'
foo:foo bar:Zm9vCg== something

무엇을 포함할 수 있는지 모르기 때문에 큰따옴표를 사용하는 것이 좋습니다.

~$ echo 'foo:'"$var"' bar:'"$(base64 foo)"' something'
foo:foo bar:Zm9vCg== something

관련 정보