成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解Linux Shell腳本編寫技巧,附實例說明

系統 Linux
Linux Shell是一個很難的知識板塊。雖然大家都認真學,基本的語法很都掌握,但有需求時,很難直接上手編程。下面,簡單介紹一下編寫shell腳本的時候的經驗和方法。

Linux Shell是一個很難的知識板塊。雖然大家都認真學,基本的語法很都掌握,但有需求時,很難直接上手編程,要么寫了很久,要么寫不好!對于初學者而言,因為沒有實戰經驗,寫不出來Shell腳本很正常,如果工作了幾年的運維還是寫不出來,那就是沒主動找需求,缺乏練習,缺乏經驗。

方法要點

簡單介紹一下編寫shell腳本的時候的經驗和方法。

  • 理清思路:在我們想實現一個功能需要寫腳本的時候是切忌不要想到就寫,避免需要什么功能就先寫個什么命令再去完善,這種寫法常常會出現在結構上很難調整的問題。在我們開始寫腳本之前一定要事先理清楚要怎么去實現這個功能,包括用什么命令和命令的先后順序。
  • 全局觀:當我們理清腳本的思路之后,我們這個時候也不能馬上就開始寫,這個時候我們需要在腦海中思考每一個步驟中可能出現的情況,當出現各種情況后如何應對。在shell腳本中有可能我們要實現一個看似簡單的功能會需要有多個條件判斷,因為出現在我們當前系統上的情況只是在眾多情況中的一種,我們要實現讓腳本在任何機器上都能正常運行就必須有“全局觀”。通俗講就是一個排除bug的過程。
  • 心細如絲:正如大家感慨的一樣,shell腳本有非常多的引號括號空格,每一種意義不一樣,多個空格少個空格意義又不一樣,寫個幾十行的shell腳本能一次性寫完就無錯運行還是有一些難度的。我的在學習shell腳本一開始就強行給自己養成一個習慣,每寫完一行就檢查一次各種符號括號,剛開始速度非常慢,但是寫得多了速度就越來越快而且出錯率也越來越低,當養成習慣以后再去寫那些符號就成了習慣沒有剛開始那么痛苦了。
  • 好記性不如爛鍵盤:有一句不好聽的話雖然不好聽,但是能提醒到一些正在學習shell腳本的朋友說出來也挺好。當你在抱怨shell腳本如何難寫如何易出錯的時候那么你總共寫過多少行shell?你敲過多少次鍵盤?

下面分享幾個shell腳本實例做練習。

1. 檢測服務器是否開啟web服務(監聽80),并判斷服務種類

  1. #!/bin/bash 
  2. #################################################### 
  3. #檢測服務器是否開啟web服務(監聽80),并判斷服務種類 
  4. #################################################### 
  5. #捕獲監聽80端口的服務名稱 
  6. netstat -lntp|grep ":80"|awk -F '/' '{print $2}'|sort|uniq > /tmp/80.log 
  7. n=`wc -l /tmp/80.log|awk '{print $1}'` 
  8. s1=`cat /tmp/80.log` 
  9. #判斷服務種類函數 
  10. judge_server() 
  11. case $1 in 
  12.  httpd) 
  13.  echo "this server is apache" 
  14.     ;; 
  15.  nginx) 
  16.     echo "this server is nginx" 
  17.     ;; 
  18.  tomcat) 
  19.     echo "this server is tomcat" 
  20.     ;; 
  21.  *) 
  22.     echo "this server is other" 
  23.     ;; 
  24. esac 
  25. if [ $n -eq 0 ] 
  26.  then 
  27.     echo "no web server!" 
  28.  exit  
  29. fi 
  30. if [ $n -eq 1 ] 
  31.  then 
  32.     judge_server $s1 
  33.  else 
  34.     echo "there are $n web servers" 
  35.     for web in `cat /tmp/80.log` 
  36.     judge_server $web 
  37. fi 

2. 檢測MySQL服務是否正常,判斷是主庫還是從庫,如是從庫判斷主從服務是否正常

  1. #!/bin/bash 
  2. ################################################################## 
  3. #檢測MySQL服務是否正常,判斷是主庫還是從庫,如是從庫判斷主從服務是否正常 
  4. ################################################################## 
  5. mysqlcmd="mysql -uroot -p123456" 
  6. #判斷MySQL服務是否正常(正確執行MySQL命令) 
  7. $mysqlcmd -e "show processlist" 
  8. if [ $? -gt 0 ] 
  9.  then 
  10.  echo "this mysql is wrong." 
  11.  else 
  12.         #如果是從庫則有返回值 
  13.  $mysqlcmd -e "show slave status\G" > /tmp/sql.log 
  14.  n=`wc -l /tmp/sql.log|awk '{print $1}'` 
  15.  if [ $n -gt 0 ] 
  16.  then 
  17.  y1=`grep 'Slave_IO_Running:' /tmp/sql.log`|awk -F ':' '{print $2}'|sed 's/ //g'` 
  18.  y2=`grep 'Slave_SQL_Running:' /tmp/sql.log`|awk -F ':' '{print $2}'|sed 's/ //g'` 
  19.  if [ $y1 == "yes" ] && [ $y2 == "yes" ] 
  20.  then 
  21.  echo "the slave is ok" 
  22.  else 
  23.  echo "the slave is wrong"  
  24.  fi 
  25.  fi 
  26. fi 

3. 計算100以內所有能被3整除的正整數的和

  1. #!/bin/bash 
  2. ############################################# 
  3. #計算100以內所有能被3整除的正整數的和 
  4. ############################################ 
  5. sum=0 
  6. for i in {1..100} 
  7. do 
  8.  #求余數 
  9.  n=$[$i%3] 
  10.  if [ $n -eq 0 ] 
  11.  then 
  12.      sum=$[$sum+$i] 
  13.  fi 
  14. done 
  15. echo "sum:$sum" 

4. 統計內存使用

  1. #!/bin/bash 
  2. ############################################# 
  3. #計算100以內所有能被3整除的正整數的和 
  4. ############################################ 
  5. sum=0 
  6. for i in {1..100} 
  7. do 
  8.  #求余數 
  9.  n=$[$i%3] 
  10.  if [ $n -eq 0 ] 
  11.  then 
  12.      sum=$[$sum+$i] 
  13.  fi 
  14. done 
  15. echo "sum:$sum" 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2024-11-27 09:19:25

2023-05-20 17:45:25

LinuxShell

2013-12-02 09:49:59

2017-08-11 17:20:07

LinuxShell

2019-08-12 07:45:44

Linux腳本shell

2010-02-22 11:14:43

Python編寫

2012-04-26 14:02:58

ibmdw

2022-06-21 09:26:21

Shell腳本JavaScript

2014-07-25 15:03:33

Linuxshellsed

2009-12-08 17:48:28

Web Service

2019-09-12 08:32:40

Linuxsed命令語法

2019-08-09 13:50:08

shellLinux

2017-06-19 15:46:08

LinuxBash腳本技巧

2017-08-15 11:32:21

LinuxBash腳本技巧

2019-12-12 10:23:34

Linux 代碼 開發

2016-09-26 14:16:18

shell腳本bash

2021-08-02 07:50:42

腳本Shell日志

2009-10-26 12:17:03

linux腳本編寫

2011-03-01 09:30:27

LinuxScreenletPython

2021-05-11 07:50:31

BashShell腳本
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久91av| 在线免费观看一区二区 | 久久青视频| 日韩电影一区二区三区 | 精品美女在线观看视频在线观看 | 一区二区三区视频 | 成人午夜网 | 中文字幕 在线观看 | 国产精品国色综合久久 | 精品国产乱码久久久久久果冻传媒 | 欧美视频第二页 | 亚洲国产精品一区在线观看 | 欧美一级片在线看 | 欧美性猛片aaaaaaa做受 | 亚洲免费视频在线观看 | 成人黄视频在线观看 | 最新av中文字幕 | 国产视频福利一区 | 欧美精品一区在线发布 | 国产精品99精品久久免费 | 国产成人免费视频网站高清观看视频 | www国产成人免费观看视频,深夜成人网 | 精品av天堂毛片久久久借种 | 国产精品视频在线播放 | 亚洲精品自在在线观看 | 一级视频黄色 | 免费在线观看黄色av | 亚洲看片网站 | 天天射天天干 | 成人在线不卡 | 免费一看一级毛片 | 国产精品99久久久久久久vr | 免费视频一区二区 | 亚洲高清在线观看 | 韩国av网站在线观看 | 天天夜干 | 玖玖久久 | 日韩精品一二三 | 久久久久久影院 | 天天想天天干 | 国产精品久久久久久久久久了 |