1、使用s模块的system方法
语法:os.system(cmd)
返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256表示未找到,该方法适用于shell命令不需要输出内容的场景。
import os
val = os.system('ls -al')
print val
没有找到时,sh返回的状态码是1,而适用python调用,返回的是:256。
缺点:脚本中得不到shell输出结果。
2、使用os.popen()
该方法以文件的形式返回shell指令运行后的结果,需要获取内容时可使用read()或readlines()方法。
val = os.popen("ls -al") # 返回迭代器
for item in val.readlines():
print(item)
结果:
3、shell脚本使用python脚本的参数
写一个hello.sh脚本,需要传入两个参数:
#!/bin/bsah
echo "hello world ${1} ${2}"
exit 0
在python脚本中调用shell脚本,并传入参数,注意参数前后要有空格:
import os
import sys
if (len(sys.argv) < 3):
print("please input two arguments")
sys.exit(1)
arg0 = sys.argv[1]
arg1 = sys.argv[2]
os.system("./hello.sh " + arg0 + " " + arg1)