从bash shell脚本调用Python脚本

时间:2019-06-17 20:45:15

标签: python bash shell

我正在尝试实现一个命令,该命令涉及将POST/GET请求发送到远程服务器并解释JSON格式的结果。由于通过bash解析JSON非常困难,因此我决定首先编写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个名为Job.py的Python类文件,其中包括submit-joblists-job之类的多个函数。 但是,为了将不同的功能分离到不同的命令参数,我必须创建单独的python文件来触发它。 (例如submit-job.pylists-job.py)。

例如。 submit-job.py

from Job import Job

j = Job()
j.submit_job()

lists-job.py

from Job import Job

j = Job()
j.lists_job()

如您所见,它们非常相似。是否有更好的方法或最佳实践来实现我想要的目标?

1 个答案:

答案 0 :(得分:0)

为什么不在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脚本。