在Python中调用shell命令及 获取python命令中的参数

时间:2022-02-15 16:27:22
Python 调用shell脚本, Python 自定义函数, Python 调用shell命令其中命令参数为python脚本中的变量
举例:   shell的脚本:
t.sh内容: echo "this is a test shell with arguments" echo "arg1 = $1; arg2 = $2;"

[noncode@gnode108 knockdown_workflow]$ ./t.sh  zhao1 zhao2this is a test shell with argumentsarg1 = zhao1; arg2 = zhao2;
python脚本:[noncode@gnode108 knockdown_workflow]$ cat  t.py 
#!/usr/bin/env python
import os
import sys
# define function, next is a block, every line begins with a 'table' !
def main():    
    print 'Hello world!'
    if len(sys.argv) < 2 :
         print "usage:%s config log"  %(sys.argv[0])
         sys.exit(1)
    arg0 = sys.argv[0]               # 获取python脚本的运行时的input参数
    arg1 = sys.argv[1]

    print "arg0 = %s; arg1 = %s"   % (arg0, arg1)
    print "test ./t.sh: "
    os.system('./t.sh ' + arg0 + ' ' + arg1)      # 调用shell 命令,用python的变量
# end definition of function

main()     # call the function

运行脚本:python   t.py   t.sh执行结果:[noncode@gnode108 knockdown_workflow]$ python  t.py  t.sh
Hello world!  (python显示) arg0 = t.py; arg1 = t.sh(python显示) test ./t.sh: (python显示) this is a test shell with arguments (shell显示) arg1 = t.py; arg2 = t.sh;(shell显示)

说明:把输入的t.py  t.sh“当成参数,使用python脚本调用shell脚本方法:(推荐os.system('./t.sh  ' + arg0 + '  ' + arg1)注:./t.sh后面有一个或者多个空格,arg0和arg1之间也要加一个空格。