使用python獲取動態分配的ip地址並傳給shell

Linux下的很多軟件要從環境變量裏獲取配置信息,有些環境變量好設置(比如某個目錄),有些難設置,比如獲取本機動態ip地址

我採用的方法是

運行ifconfig eth0命令獲取本機網卡eth0的配置信息

將輸出的內容保存到臨時文件

逐行讀取該文件,讀到第2行時,對改行進行字段抽取

將抽取出的字符串打印到標準輸出

shell的雙反斜槓能將python腳本的標準輸出作爲標準輸入保存到環境變量


先在HOME目錄下創建get_ip.py

#encoding=utf-8
import subprocess
tmp_file = open('/tmp/g.log','w')
subprocess.call(['ifconfig', 'eth0'], stdout=tmp_file)

tmp_file = open('/tmp/g.log','r')
line_num = 0
for line in tmp_file:
    if line_num == 1:
        print line.lstrip().split('  ')[0].split(':')[1]
    line_num = line_num +1


然後在shell腳本里添加export環境變量 語句

export ROS_IP=`python $HOME/get_ip.py`

完畢!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章