次のコマンドを実行したいと思います。
curl -X PUT $URL -H "accept: */*" -H "Content-Type: application/json" -d '{"payload": $(base64 /some/path)`}'
tcshではなくこの構文を使用するbashなので、このコマンドを実行するのは妥当です$(base64 /some/path)
。Illegal variable name
どのように実行できますか?バックティックを使ってみましたが、成功しませんでした。
答え1
バックティックが機能するはずです。 JSON構文を正しく作成するには、さらに二重引用符文字が必要です。
curl -X PUT $URL -H "accept: */*" -H "Content-Type: application/json" -d '{"payload": "'`base64 /some/path`'"}'
-dパラメーターは3つの部分で構成されています。
'{"payload": "'
`base64 /some/path`
'"}'
最初と3番目は一重引用符を使用するため、二重引用符を含むその中のすべての内容が保持されます。特に、-dパラメーターの最終値は、{ "payload": "af5143676d6d6d6a bcdefc8844"}
周囲に二重引用符があり、base64出力で改行文字を置き換えるスペースを含む16進文字列に似ています。遠隔端はこれらのスペースを好まないかもしれません。