Bash脚本CURL解析错误求助:Invalid numeric literal
解决Bash脚本中CURL+JQ的解析错误
错误原因
你遇到的parse error: Invalid numeric literal错误,根源有两个:
- 脚本里误用了HTML转义的
"代替普通双引号",导致curl无法正确解析请求参数,返回的内容不是合法JSON,jq自然解析失败。 password变量传递给jq时未加引号包裹,若变量含特殊字符可能触发分词或解析异常。
修正后的脚本
#!/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"
关键修正点
- 把所有
"替换为普通双引号",确保curl能正确识别请求参数格式。 - 变量赋值时添加双引号(
data="LOGIN"、password="123PASSWD"),避免后续变量扩展时出现意外问题。 --arg arg "$password"中给$password加上双引号,防止变量内容含空格或特殊字符时被Bash错误分词。
内容的提问来源于stack exchange,提问作者user19896392
相关产品推荐
相关产品推荐

