python - 如何在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 '
我注意到在上面的错误打印输出中我看到了最后"'"
任何想法?我是否需要转义任何字符或使用双括号?
解决方案
推荐阅读
- java - 如何通过忽略时间部分通过日期字段列表使用 Spring Data 执行查询
- python - 如何在自定义域上获取 Google App Engine 中的主机名?
- javascript - 当 toSource() 和 toString() 返回“[native code]”时如何获取函数源(使用 mozilla firefox)
- curl - 是否有 curl 命令来获取虚拟服务器详细信息?
- haskell - 递归数据类型二叉树的后序遍历
- nsis - 如何使用 NSIS 将子目录及其内容移动到另一个目录
- postgresql - 应用引擎的 Spring Boot 实例不断重新连接到 postgres google sql
- javascript - Vue多选不允许创建新标签
- odoo - 字段不存在 ODOO
- c - 在 C 递归中使用 char 输入