python - 从 bash shell 脚本调用 Python 脚本
问题描述
我正在尝试实现一个命令,该命令涉及向POST/GET
远程服务器发送请求并解释JSON
格式结果。由于通过 解析 JSON 非常困难bash
,我决定先编写 python 脚本并在 shell 脚本中调用它。
我的 shell 脚本现在看起来像这样
#!/bin/sh
case $1 in
submit-job)
python3 src/submit-job.py
;;
lists-job)
python3 src/lists-job.py
;;
....and so on
esac
我希望我的用户可以使用以下命令。
Job submit-job argument1 argument2...
Job lists-job
...and so on
基本上。我只有 1 个 Python 类文件,Job.py
其中包括多个函数,例如submit-job
和lists-job
. 但是,为了将不同的函数分隔到不同的命令参数,我必须创建单独的 python 文件来触发它。(喜欢submit-job.py
和lists-job.py
)。
例如。提交作业.py
from Job import Job
j = Job()
j.submit_job()
列表-job.py
from Job import Job
j = Job()
j.lists_job()
如您所见,它们非常相似。有没有更好的方法或最佳实践来实现我想要的?
解决方案
为什么不在 Python 中执行 if/else?
import sys
from Job import Job
j = Job()
arg = sys.argv[1]
if arg == 'submit-job':
j.submit_job()
elif ...
...
现在您可以在 bash 脚本中调用它,传递参数,甚至已经删除 bash 脚本并直接从命令行调用 Python 脚本。
推荐阅读
- typescript - 类型缩小在通用约束下无法按预期工作
- java - 如何在java中找到矩阵的鞍点?
- php - Composer using the wrong PHP binary
- uwp - 如何在 UWP RichEditBox 中捕获超链接点击?
- groovy - 在 CI testRunner.testCase.testSuite.project.getName() 中获取项目名称时获取空指针;
- java - 如何创建一个 Spring Boot 站点管理员?
- javascript - GPT googletag.content().setContent 不适用于设置 html 内容
- jquery - 我想将选定的表格行数据附加/复制到另一个表格角度
- python - 发生异常:WebDriverException
- javascript - 在网络聊天机器人中发送消息后,如何在 Android 上继续显示虚拟键盘?