[root@izm5e8t6lxkk4uk1hn5639z ~]# python
Python 2.7.5 (default, Nov 6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system("source /home/oracle/.bash_profile")
0
>>> os.system("echo $PATH")
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
0
>>>
为什么PATH不会改变?什么是0意思
答案 0 :(得分:2)
因为os.system
会生成一个shell,它会使用您的source
命令设置它自己的路径,然后立即退出。您可以设置路径,然后立即运行程序:
os.system("source /home/oracle/.bash_profile && your_command_here")
虽然我会提醒您,但这不是推荐的运行外部程序的方法。使用subprocess
是一个更好的主意,因为避免产生shell(子进程可以帮助你在那个区域)
https://docs.python.org/2/library/subprocess.html#module-subprocess