shell基礎

寫在最前,做爲一名軟件測試人員,shell基礎也是必不可少的技能,就筆者遇到的工做場景中,在linux部署測試環境,查看錯誤信息,監控服務器性能都會用到shell語句,此外,無論是dockerfile,或者是自動化腳本都須要用到這塊的技術,這篇文章一方面也是梳理一下比較雜亂的技能點,另外一方面也是留個檔,方面後面持續查看學習。本文主要梳理shell基礎,詳見正文。
    
1、shell介紹
  
  shell是系統的用戶界面,提供了用戶與內核進行交互操做的一種接口。實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令而且把它們送到linux內核。它是一門弱類型的腳本語言。
 
2、shell腳本格式
  
  shell腳本是以.sh結尾的文件,其中文件的第一行內容爲#!/bin/bash,第一行的內容指定了shell腳本解釋器的路徑,並且這個指定路徑只能放在文件的第一行。
   #!/bin/bash                                                                                                                           
 
3、shell變量及參數傳遞
  • 變量定義及使用
      shell變量的名稱定義與其餘變成語言一致,包括:
      1. 命名只能使用英文字母,數字和下劃線,首個字符不能以數字開頭
      2. 中間不能有空格,能夠使用下劃線,不能使用標點符號
      3. 不能使用bash裏的關鍵字
       這裏要特別注意的是:變量名和等號之間不能有空格,以下:
      
      變量值輸出:echo $變量名
      變量釋放:unset 變量      
      
      案例以下:
        

      特殊變量定義:雙引號、單引號、反單引號javascript

      "" 雙引號括起來的變量:會將其中的變量轉變爲實際值輸出java

      ''  單引號括起來的變量:輸入什麼就是什麼linux

      `` 反單引號包含的內容:會做爲shell命令執行,返回結果 docker

      樣例以下:shell

      

 

 

  • 參數傳遞
      輸入操做:read -p "提示信息" 變量名 
      
      以文件形式接收參數:
      $1--->傳遞第一個參數
      $n---->傳遞第n個參數
      $0:顯示的是文件名稱
      $@:顯示全部的參數
      $#:顯示的參數的個數
   
      樣例以下:
      腳本內容:  
                     
      輸出內容:
       

 

  • 重定向
     >覆蓋,>>追加
     案例以下:執行 >> 兩遍追加,輸入內容是追加的,若是是執行 > ,則會覆蓋刪除
                          

 

 4、shell邏輯判斷
  • 分支結構
   if分支
   if...then...elif...then...else...fi分支,案例以下:
    注意:[] 先後都須要有空格
    
    case分支
   第一行最後必須爲in,每一個執行語句以;;結束,最後以esac結束,以下:
    
    補充:
     邏輯運算符:
    -a :且
              -o :或
     ! : 否
      比較運算符:
    -eq:equal 相等 
    -ne:not equal  不相等
    -ge:greater equal 大於等於 
    -gt:greater than  大於
    -le:less equal 小於等於
    -lt:less than  小於
      字符串比較:
    ==  相等 
    !=   不等
    -z 判斷字符串長度是否爲0
       -n 判斷字符牀是否爲空
              測試文件/目錄狀態 :
    -d dir  判斷是否爲目錄
            -f  file  判斷是否爲文件
    -e file  判斷文件或目錄是否存在
    -w、-r 、-x 判斷文件是否可寫,可讀、可執行
 5、shell循環體
    
  for循環
    格式:
    for 變量名 in 列表
    do
      語句
    done
   案例以下:
   

 

      其中:命令: seq start size max,能夠生成一個指定起始、結尾、步長的列表bash

   while循環
  格式:
  while [ 條件 ]
  do 
    執行語句
  done
  案例以下:
  
 
 

6、shell函數服務器

 
   定義:函數名(){}
   案例以下:
  
相關文章
相關標籤/搜索