서버에 대한 파일의 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