簡體   English   中英

為什么os.system(“ source /home/oracle/.bash_profile”)無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM