0
私は「問題JSONの解析」私は私のコードを実行しようと、それは(少なくとも私には)理にかなっているので、私はなぜわからないときメッセージが表示されます:文字列を正しく入力してbashのJSONとして解析する方法は?
#!/bin/bash
LAST_TAG_NAME=$(curl -s 'https://api.github.com/repos/USERNAME/REPONAME/releases/latest' | sed -n '/tag_name/{ s/[^:]*:[\ ]*\([^,]*\),/\1/; p; }' | sed -e 's/^"//' -e 's/"$//')
LAST_TAG_NUMBER=$(echo ${LAST_TAG_NAME} | grep -o '\..*' | sed -e 's/^.//')
TAG_NAME="api-web-${YEAR}w${WEEK}"
CURRENT_NUM=$((LAST_TAG_NUMBER + 1))
FINAL_NAME="$TAG_NAME.$CURRENT_NUM"
curl -u USERNAME:TOKEN -X POST 'https://api.github.com/repos/USERNAME/REPONAME/releases' -H 'Accept: application/json, text/javascript' --data-binary '{"tag_name": $FINAL_NAME}'
基本的には、すべての可変スタッフ作品。 TAG_NAMEはapi-web-2017w42のようなもので、CURRENT_NUMは2のような数字です。この問題は、新しいリリースを作成しようとしても終了します。 USERNAMEとREPONAMEは匿名化されています。
問題は '$ FINAL_NAME'にあります。拡張されないので、サーバーは '{" tag_name ":$ FINAL_NAME}'を受け取ります。これは無効なJSONです。代わりに、 ''{" tag_name ":"' "$" FINAL_NAME "'"}' 'を使用してください。 – randomir