學shell的第三天

編程原理:
1.編程介紹
   早期編程
      驅動    硬件默認是不能使用的;
        不一樣的廠家硬件設備之間須要進行指令溝通,咱們須要驅動程序來進行翻譯;
        更趨近與硬件開發的工程師,要學習「彙編語言」;而「彙編語言」被廠家限制
   如今編程
      基於高級語言,以及超高級語言,更好的讓程序員可以的實現編程功能
   編程語言的分類:
      高級語言、超高級語言須要翻譯成計算機可讀的語言(二進制指令)
      解釋型--逐行翻譯,逐行執行  shell
      編譯型--一次編譯,所有執行  c語言  c++ c#
      程序 = 指令 + 數據
      面向對象--側重於數據的編程語言
      面向過程--側重於指令
   編程語言的執行方式:
      一、順序執行
      二、循環執行--for(遍歷) while(循環條件) until(和while相反)
      三、選擇執行--分支if *case*
二、shell腳本語言介紹
   優勢:調用os(操做系統)的命令行,來實現全部功能;
   缺點:沒有庫調用
   shell腳本包括:一、*命令*(很是重要)二、變量(全局變量、局部變量、本地變量、傳參)三、邏輯關係
   shell的第一句話!!!
   #!/bin/bash    --定義腳本解釋器
   /etc/shells --- 查看當前系統支持的shell程序
   echo $SHELL --查看當前會話的shell程序
   /etc/passwd --制定了用戶默認支持的shell程序
   shell的執行:
      1.bash命令來執行腳本
         -n     查看shell腳本的邏輯錯誤(注意:單詞寫錯了可無論)
         -x     逐行顯示執行的腳本程序(方便排錯)
      2.受權chmod u+x filename.sh
三、變量
   環境變量
   局部變量  declare 命令--定義變量類型
   本地變量  local在函數中使用
   變量類型:
      數值型:
         1.整形
         2.浮點型
         3.布爾值 0 1 (真 假)(True False)
    字符串:
       1.普通字符及字符串
       2.數組
    編程語言的分類:
       強類型語言:--數值必須被定義,才能進行處理或運算
       弱類型語言:--編程語言能夠自動識別變量類型
     【*多態*一個數據具備多個屬性,而最後使用的屬性取決於和它進行運算的數據】
    傳參
       $?  --上一條命令的執行狀態0正確1-255錯誤
       $1 $2 $3 ${10}--命令後面傳入腳本的數據,以空格爲分隔符
       $# --統計傳參數量        ${$#}這個是最後一個傳參
       $* --表示全部傳參,全部的傳參以字符串形式進行輸出
       $@--表示全部傳參,將全部的傳參以列表的形式進行輸出
    定義變量的格式:
        NAME=VALUE
        我沒讓你經過命令declare定義變量類型
        declare -i 整數
        declare -a 數組
    變量命名:
       1.下劃線的方式指定變量名稱
       2.駝峯命名法
四、test文件測試、條件判斷
   在腳本中,咱們須要進行語句分支;說白了,就要作判斷
   判斷就是使用test命令來實現
   使用格式:c++

    1.test  參數  file程序員

    2.[條件語句]
   常見的test選項:
      比較選項:
      -eq等於
      -ne不等於
      -gt 大於
      -ge大於等於
      -lt小於
      -le小於等於
    文件判斷選項:
      -f     -d    -L       -r       -w        -x
    關聯選項:
      -o 或
      -a 與
      ! 非
    字符串判斷
       =
       !=
       -z 判斷字符串長度是否爲0
       -n和z相反
五、邏輯運算
   與 &&:兩邊的命令,都是真,結果纔是真
   或 ||:兩邊的命令,一邊爲真就是真,同時爲假才爲假
   非        !=
六、算數運算
   let   加法
   expr 乘法
   $[$1+10]
   $(($1/$2))
   + - * / % **shell

相關文章
相關標籤/搜索