[Python]在python中调用shell脚本,并传入参数-02python操作shell实例,,首先创建2个shel


首先创建2个shell脚本文件,测试用.

test_shell_no_para.sh 运行时,不需要传递参数test_shell_2_para.sh 运行时,需要传递2个参数

技术图片

  test_shell_no_para.sh 内容如下:

技术图片

  test_shell_2_para.sh内容如下

注意含有变量的字符串要用 双引号 括起来

技术图片

  直接在命令行运行 test_shell_2_para.sh 执行结果如下:

wangju@wangju-HP-348-G4:~$ sh test_shell_2_para.sh ‘para1‘ ‘para2‘hello world para1 para2 

通过python调用shell,实际操作:

通过python 调用test_shell_no_para.sh脚本
In [29]: os.system(‘./test_shell_no_para.sh‘)                                   hello worldOut[29]: 512
python 调用test_shell_2_para.sh脚本,并传入2个参数 arg1和arg2
In [31]: arg1=‘pyarg1‘                                                          In [32]: arg2=‘pyarg2‘ In [35]: os.system(‘./test_shell_2_para.sh ‘+arg1+‘ ‘+arg2)                     hello world pyarg1 pyarg2 Out[35]: 0

注意:参数前后要有空格

如果参数前后没有空格会报下面的错:

命令行会将参数也视为脚本名字的一部分

技术图片

在shell脚本中调用shell脚本,并传入参数(重点掌握)

  先创建1个python脚本,内容如下:

import osimport sysif len(sys.argv)<3:    print(‘Please Input Two Arguments‘)    sys.exit(1)arg0=sys.argv[1]arg1=sys.argv[2]os.system(‘./test_shell_2_para.sh ‘+arg0+‘ ‘+arg1)

  执行python脚本,效果如下:

wangju@wangju-HP-348-G4:~$ python3 pp.pyPlease Input Two Argumentswangju@wangju-HP-348-G4:~$ python3 pp.py 曹操 刘备hello world 曹操 刘备 

[Python]在python中调用shell脚本,并传入参数-02python操作shell实例

评论关闭