Shell 腳本-實現(xiàn)獲取網(wǎng)絡(luò) ip 并輸出文件的小功能

腳本類的編程在我看來目的性很強(qiáng)待德,就是說,我們一般會要實現(xiàn)某個功能而選用腳本來完成睛蛛。我對腳本語言沒研究,只是在用到的時候現(xiàn)學(xué)現(xiàn)用胧谈,這樣能最快解決我的問題忆肾,不過如果要更高級的玩法,還得好好學(xué)學(xué)菱肖。

這次是在實際項目中遇到一個需求难菌,想著能否用 shell 腳本實現(xiàn),于是便開始邊查資料邊實現(xiàn)蔑滓。寫這篇文章說明我達(dá)到了我的期望,其次也是記錄一下遇绞,方便下次回顧键袱。

需求

  1. 獲取到電腦的 ip,并寫在一個文件里摹闽。
  2. ip 值形如 192.168.1.1蹄咖,文件也是有固定位置要求的。
  3. 因為有文件有固定位置要求付鹿,就需要用戶輸入一個根目錄(因為相對位置是一樣的澜汤,根目錄不同)蚜迅。
  4. 對同個設(shè)備來說,根目錄不會經(jīng)常變俊抵,所以最好用戶只輸入一次谁不,之后就不要輸入了。
  5. 對文件及路徑是否存在做校驗判空徽诲。

分析實現(xiàn)

我在最初的實現(xiàn)只是想嘗試需求的 1刹帕,2 點,后面是在調(diào)試過程中谎替,從用戶實際使用的角度出發(fā)做的完善偷溺。就先從 1, 2 點來說钱贯。

第一步

獲取 ip 的方式挫掏,

ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"

拿到 ip 之后我希望對 ip 進(jìn)行輸出,變成一個類似這樣的配置 localIp="http://192.168.1.1/interface/prefix"秩命,
所以下一步我要做的就是形成這樣一句話尉共,

echo "192.168.1.1" > "需要用戶輸入配置的根目錄/"config.properties

這句話就能將 "192.168.1.1" 輸出到文件 config.properties 里。
總體的實現(xiàn)是這樣的硫麻,

#!/usr/bin/bash
ipValue=$(ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:")
echo "http://${ipValue}/interface/prefix" > config.properties

第二步

接下去需要能讓用戶首次指定 config 文件輸出路徑爸邢,

#這可以提示用戶輸入
echo "請輸入文件路徑"
read path

如何只讓用戶配置一次 config 文件輸出路徑呢?我想肯定需要一個地方來存拿愧,并且腳本運行時先要去取杠河,取不到就提示用戶配置,

file="ip_path.txt"
if [ ! -f file ]
then
  #提示用戶輸入浇辜,并且將路徑存起來
  echo ${path} > file
else
  path=$(cat file)
fi

好了券敌,現(xiàn)在用戶不用每次都填寫配置路徑了。

第三步

最后我對用戶輸入的 path 路徑是否存在做了校驗柳洋,如果路徑不存在將會做刪除操作待诅,確保下次還讓用戶輸入。

注意點

運行腳本時熊镣,sh 和 bash 其實是不一樣的卑雁,上述我說的其實要基于 bash,如果用 sh 就會報一些語法錯誤绪囱,這是我在調(diào)試過程中遇到的坑测蹲,究其原因,應(yīng)該就是內(nèi)在的執(zhí)行腳本不同鬼吵。

總結(jié)

網(wǎng)上關(guān)于 shell 腳本的資料還是很好找的扣甲,實現(xiàn)一些基本功能沒問題,但高深的可能就要對 linux 等相關(guān)的知識要有一定了解齿椅。

參考內(nèi)容

shell 腳本獲取 ip 地址
shell 腳本文件輸入輸出
shell 腳本 read 指令
shell 腳本 if-else 語句
shell 腳本讀取文件內(nèi)容
shell 腳本刪除文件

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末琉挖,一起剝皮案震驚了整個濱河市启泣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌示辈,老刑警劉巖寥茫,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異顽耳,居然都是意外死亡坠敷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門射富,熙熙樓的掌柜王于貴愁眉苦臉地迎上來膝迎,“玉大人,你說我怎么就攤上這事胰耗∠薮危” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵柴灯,是天一觀的道長卖漫。 經(jīng)常有香客問我,道長赠群,這世上最難降的妖魔是什么羊始? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮查描,結(jié)果婚禮上突委,老公的妹妹穿的比我還像新娘。我一直安慰自己冬三,他們只是感情好匀油,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著勾笆,像睡著了一般敌蚜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窝爪,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天弛车,我揣著相機(jī)與錄音,去河邊找鬼蒲每。 笑死帅韧,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的啃勉。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼双妨,長吁一口氣:“原來是場噩夢啊……” “哼淮阐!你這毒婦竟也來了叮阅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤泣特,失蹤者是張志新(化名)和其女友劉穎浩姥,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體状您,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡勒叠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了膏孟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片眯分。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柒桑,靈堂內(nèi)的尸體忽然破棺而出弊决,到底是詐尸還是另有隱情,我是刑警寧澤魁淳,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布飘诗,位于F島的核電站,受9級特大地震影響界逛,放射性物質(zhì)發(fā)生泄漏昆稿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一息拜、第九天 我趴在偏房一處隱蔽的房頂上張望溉潭。 院中可真熱鬧,春花似錦该溯、人聲如沸岛抄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夫椭。三九已至,卻和暖如春氯庆,著一層夾襖步出監(jiān)牢的瞬間蹭秋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工堤撵, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留仁讨,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓实昨,卻偏偏與公主長得像洞豁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容