首页 > 解决方案 > 如何在bash脚本中使用参数执行复杂的python脚本

问题描述

如何以正确的方式执行在 bash 脚本中有许多参数的 python 脚本?

我试过这个:

#!/bin/bash

CMD="/home/blabla.py --spec standard --id blabla --type car --wait 6 --priority normal --custom ' --tag blabla&&!klingklong --conf /home/team/blabla.yaml ' "
$CMD

注意:上面的命令是带有参数值的示例,因为它们是在 bash 脚本的前面步骤中创建的。我现实命令看起来像这样:

CMD="/home/blabla.py --spec ${SPEC} --id ${ID} --type ${TYPE} --wait ${WAIT} --priority ${PRIORITY} --custom ' --tag blabla&&!klingklong --conf /home/team/blabla.yaml ' "

所以,我首先创建所有命令结束,然后我尝试执行它。在下一步中,我什至会为 --tag 和 --conf 添加变量。

如果我复制命令并直接在 shell 中执行它,它将毫无问题地执行。但是执行 bash 脚本会抱怨--custom''中的参数。

我观察到的是,在 shell 中执行时,--custom参数被确认并正确添加到变量 custom/home/blabla.py

custom=' --tag blabla&&!klingklong --conf /home/team/blabla.yaml'

但是从 bash 脚本执行时不会发生这种情况!

blabla.py: error: unrecognized arguments: --tag blabla&&!klingklong --conf /home/team/blabla.yaml '

我注意到在上面的错误打印输出中我看到了最后"'"

任何想法?我是否需要转义任何字符或使用双括号?

标签: pythonbash

解决方案


推荐阅读