python从bash shell调用自定义函数

jin*_*890 3 python bash shell

如何从bash shell调用python脚本中的自定义函数?

我试图使用sys.argv [1],但工作不正常.

例如,

import sys

if __name__=='__main__':
    try:
        func = sys.argv[1]
    except: func = None

def function1():
~~~~~~~~
return a

def function2():
~~~~~~~~
return b
Run Code Online (Sandbox Code Playgroud)

在这里,我想通过输入like来调用函数1或函数2

$ script.py function1

$ script.py function2

Big*_*her 6

您正在获取功能的名称,但您没有运行它.您应首先检查func名称是否是您的函数之一而不是执行它:

if __name__=='__main__':
    try:
        func = sys.argv[1]
    except: 
        func = None

functions = {    
              "function1": function1,
              "function2": function2
              }

if func in functions:
    functions[func]()
Run Code Online (Sandbox Code Playgroud)

更简单的解决方案:

 if func == "function1":
     function1()
 elif func == "function2":
     function2()
Run Code Online (Sandbox Code Playgroud)