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

如何通过Bash脚本传递参数运行Python脚本?

解决Bash传递带空格参数给Python脚本的问题

你的脚本存在几个关键问题,导致无法正确传递参数:

  • 多个未定义变量:$hours、$hour、$full均未赋值,运行时会输出空值或报错
  • 手动拼接引号的方式错误:把单引号作为字符串内容拼入变量,传递时Bash会将空格视为参数分隔符,导致带空格的时间被拆分成多个无效参数

以下是修正后的脚本,完全匹配你终端手动执行的效果:

#!/bin/bash
# 获取当前时间,格式为"YYYY-MM-DD HH:MM"
current_time=$(date +"%Y-%m-%d %H:%M")
# 获取1小时前的时间
one_hour_ago=$(date -d "1 hour ago" +"%Y-%m-%d %H:%M")

# 可选:验证变量内容
echo "当前时间: $current_time"
echo "1小时前时间: $one_hour_ago"

# 正确传递参数:用双引号包裹带空格的变量,确保作为单个参数传递
python3 stw_apiv6.py -E var1 -a "$current_time" -b "$one_hour_ago" -r yes

关键说明:

  • 变量定义:直接通过date命令生成带空格的时间字符串,无需手动拼接引号
  • 参数传递:用双引号"$变量名"包裹带空格的变量,Bash会将整个变量值作为单个参数传递,和你在终端输入-a '2023-10-19 16:00'的效果完全一致
  • 如果你需要调整参数(比如用其他时间作为-a或-b的值),只需修改对应的变量赋值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 21:12:43