You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本中将Curl从Nexus获取的结果赋值给变量无输出问题求助

Shell 脚本 curl 赋值异常排查方案
  • 修复基础语法错误
    你提供的示例代码中 curl 请求的 URL 末尾缺少闭合双引号,会导致 Shell 解析命令异常,直接造成执行失败无返回。首先修正语法:
var=$(curl -u user_name:password --request GET "http://host_name:portnumber/URL")
# 打印变量时添加双引号,避免返回内容中的换行、空格被Shell拆分导致显示异常
echo "$var"
  • 关闭 curl 多余输出
    curl 默认会输出下载进度、连接日志等非业务返回内容,会干扰结果赋值,添加 -s(静默模式)参数关闭无关输出:
var=$(curl -s -u user_name:password --request GET "http://host_name:portnumber/URL")
echo "$var"
  • 捕获错误信息定位根因
    如果修正后仍然无预期返回,将标准错误流合并到标准输出,把 curl 执行过程中的报错也存入变量,可直接看到连接失败、权限错误、DNS解析失败等具体问题:
var=$(curl -s -u user_name:password --request GET "http://host_name:portnumber/URL" 2>&1)
echo "$var"
  • 处理特殊字符转义
    如果你的账号密码、URL 中包含 $、!、&、空格等 Shell 特殊字符,需要对特殊字符转义,或者用单引号包裹对应参数避免被 Shell 解析:
    示例(密码包含特殊字符时的写法):
    curl -u 'user_name:pass!word@123' --request GET "http://host_name:portnumber/URL"
  • 校验网络环境一致性
    部分 Shell 环境会配置全局代理,导致 curl 请求路由和 Postman 不一致,可添加 -noproxy '*' 参数强制不走代理请求:
var=$(curl -s -noproxy '*' -u user_name:password --request GET "http://host_name:portnumber/URL")
echo "$var"

内容的提问来源于stack exchange,提问作者Insta Life

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:39:02