![](/img/trans.png)
[英]Python 'source HOME/.bashrc' with os.system()
[英]why does os.system(“source /home/oracle/.bash_profile”) not work
[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意味着什么
因為os.system
產生了一個shell,所以用您的source
命令設置了它自己的路徑,然后立即退出。 您可以設置路徑,然后立即運行程序:
os.system("source /home/oracle/.bash_profile && your_command_here")
盡管我會警告您,但是這不是運行外部程序的推薦方法。 使用subprocess
是一個更好的主意,最好避免使用產生外殼的方法(子進程可以幫助您解決該問題)
https://docs.python.org/2/library/subprocess.html#module-subprocess
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.