2017-09-05 29 views
0
[[email protected] ~]# 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 MEANS爲什麼os.system(「source /home/oracle/.bash_profile」)不起作用

+0

使用'os.popen()'和路徑,你可以使用'glob'模塊 – Gahan

回答

2

因爲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

+1

thankes您anwser –

相關問題