我正在嘗試通過 api 將一些資料推送到我的 Tiddlywiki,這樣我就可以創建一個新的 tiddler。我可以傳遞幾乎所有的資料,但是如果值“text”里面有空格,它會破壞 curl 命令嘗試傳遞多個 url。
這是實際的命令:
curl -X PUT -i "http://192.168.1.166:8080/recipes/default/tiddlers/$title" -H "X-Requested-With: TiddlyWiki" --data $(jq -nc --arg tags "$tag" --arg text "'${content}'" '{ $tags, $text }')
我一開始嘗試在括號內使用 $variables,甚至在多個 "'"$var"'" 中使用這里的其他問題。但他們中的大多數人很快就推薦使用 jq,所以我試了一下。
我學會了如何使用 bash 的變數內容創建一些鍵,如果我將所有這些都通過管道傳輸,只有當我用其他字符替換空格時,我才能讓它作業......我嘗試了 或用 sed 縮小空格 \沒有成功。( 被逐字替換,所以沒有幫助)
任何建議,我都會遵循您可以帶來的任何其他途徑。
謝謝。
編輯:我嘗試使用 --data-urlencode "text=${var}" 但它沒有被填充,只有擴展的變數是標題。其他的根本沒有出現。
API 的資訊: https ://tiddlywiki.com/static/WebServer%20API%3A%20Put%20Tiddler.html
我忘了提到我正在使用 zsh shell ......
uj5u.com熱心網友回復:
您需要參考命令替換的輸出:--data "$(jq ...)". 沒有這個,curl 認為第一個單詞之后的單詞是要連接的單個 URL。您還應該從 中洗掉單引號--arg text "'${content}'",否則它們將被添加到文本本身中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/527210.html
