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

如何在curl命令中使用date日期变量实现GET请求动态传参

你之前写法的核心问题

  • 单引号包裹的字符串在Shell中属于强引用,不会解析内部的$()命令替换、变量取值逻辑,第一种写法把date命令放在单引号内,命令不会执行,只会被当作普通字符串传给接口。
  • 日期格式化符写错:你用的%Y-%d-%m是「年-日-月」格式,和示例要求的「年-月-日」不符,应该调整为%Y-%m-%d。
  • 多余的符号拼接:第三种写法额外拼接了引号到参数值里,相当于传给接口的参数值是带双引号的,不符合接口要求;第二种写法末尾多了冗余的单引号,存在语法错误。

正确可用写法

写法1:直接拼接命令替换

用双引号包裹整个URL,Shell会自动解析内部的命令替换逻辑:

curl -s -XGET "https://www.website.com/api/shifts?start_date=$(date +'%Y-%m-%d')"

写法2:先存变量再调用

逻辑更清晰,适合多参数场景:

# 先赋值日期变量
CURRENT_DATE=$(date +'%Y-%m-%d')
# 调用curl接口
curl -s -XGET "https://www.website.com/api/shifts?start_date=${CURRENT_DATE}"

写法3:兼容特殊参数的稳妥写法

如果后续参数有空格、特殊字符的场景也能正常使用,用-G参数指定把--data-urlencode的内容拼到GET请求的URL参数里,自动完成编码:

curl -s -XGET -G 'https://www.website.com/api/shifts' --data-urlencode "start_date=$(date +'%Y-%m-%d')"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:54:07