我在做一个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¬ify_email=¬ify_ref=" \
| jq -r --arg arg $password '.note_link + "#" + $arg')
echo "note URL is $note_link"
发布于 2022-09-01 07:38:24
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¬ify_email=¬ify_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
https://stackoverflow.com/questions/73570508
复制