curl 错误:解析错误:第1行第8列的数值文字无效

vm0i2vca  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(143)

我正在写一个bash脚本,当处理这样的错误时...我不知道问题出在哪里。我还不擅长写脚本。

#!/bin/bash

data=LOGIN

password=123PASSWD

note_link=$(curl -s 'https://cryptgeon.nicco.io' \
    -H 'X-Requested-With: XMLHttpRequest' \
    --data-urlencode "data=$data" \
    --data "has_manual_pass=false&duration_hours=0&dont_ask=false&data_type=T&notify_email=&notify_ref=" \
    | jq -r --arg arg $password '.note_link + "#" + $arg')

echo "note URL is $note_link"
62lalag4

62lalag41#

curl-s选项也会隐藏错误,但是您希望在这种情况下看到错误,以便能够了解出了什么问题,因此请改用-sS
另外,jq只能解析json。如果输入不是json,它将失败,并显示您得到的错误。您应该首先尝试用jq解析输出,如果失败,则显示它。

#!/bin/bash

data=LOGIN

password=123PASSWD

curl_output=$(curl -sS 'https://cryptgeon.nicco.io' \
    -H 'X-Requested-With: XMLHttpRequest' \
    --data-urlencode "data=$data" \
    --data "has_manual_pass=false&duration_hours=0&dont_ask=false&data_type=T&notify_email=&notify_ref=")
if note_link=$(jq -r --arg pass "$password" '.note_link + "#" + $pass' <<<"$curl_output" 2>/dev/null); then
  echo "note URL is $note_link"
else
  printf >&2 %s\\n "Could not parse the curl output:" "$curl_output"
fi

相关问题