如何将bash数组传递给python脚本 接收参数异常问题排查
解决方案
常见问题原因
你遇到的问题通常来自以下两个高频错误点:
- Python脚本未导入
sys模块,导致参数读取异常 - 错误使用
export导出Bash数组,且/或使用sh而非bash执行脚本,导致数组展开失败
修复代码
Python侧补全导入
你的Python代码缺少sys模块导入,补全后如下:
import sys for i in sys.argv[1:]: print(i)
Bash侧优化写法
Bash本身不支持将数组变量导出到子进程环境,同Shell上下文无需export即可展开数组,修改后代码:
arr=(val val val) value=$(python script.py "${arr[@]}") # 可选:打印验证返回结果 echo "$value"
执行注意
确保使用bash命令执行你的Bash脚本,不要用sh,sh默认不支持数组语法,会导致展开异常。
修改后运行即可得到三个val分行打印的预期结果。
内容的提问来源于stack exchange,提问作者jessy
相关产品推荐
相关产品推荐

