您的位置:首页 > 运维架构 > Shell

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

2016-03-16 23:09 716 查看
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 zhao2
this is a test shell with arguments
arg1 = 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之间也要加一个空格。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: