成人免费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-08-15 11:32:21

LinuxBash腳本技巧

2019-12-12 10:23:34

Linux 代碼 開發

2017-06-19 15:46:08

LinuxBash腳本技巧

2016-09-26 14:16:18

shell腳本bash

2021-08-02 07:50:42

腳本Shell日志

2009-12-21 15:50:39

2009-10-26 12:17:03

linux腳本編寫

2011-03-01 09:30:27

LinuxScreenletPython
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠躁夜夜躁人人爽天天高潮 | 精品一级| 成人在线精品视频 | 中文字幕精品一区久久久久 | 久久婷婷av | 亚洲午夜精品一区二区三区他趣 | 亚洲一区二区视频在线观看 | 欧美自拍一区 | 色综合天天天天做夜夜夜夜做 | 亚洲一区在线播放 | www国产成人 | www.婷婷 | 日韩免费一区 | 亚洲精品福利在线 | 成人在线小视频 | 巨大黑人极品videos精品 | 四虎影视在线 | 午夜视频一区二区 | 日韩乱码一二三 | 色爱综合网 | 色呦呦在线 | 欧美视频免费在线 | 日韩免费在线视频 | 久久免费精品 | 日韩一区二区三区av | 亚洲色图在线观看 | 国产三级大片 | 成人免费在线播放视频 | 国产精品美女久久久久aⅴ国产馆 | 狠狠干综合视频 | 国产福利在线视频 | 东方伊人免费在线观看 | 日韩视频三区 | 91xxx在线观看| 视频1区2区 | 亚洲 欧美 日韩 精品 | 91精品国产91久久久久久吃药 | 麻豆视频在线免费观看 | 国产你懂的在线观看 | 狠狠涩 | 亚洲精品福利视频 |