shell腳本基本介紹

一、編程介紹
  驅動 硬件默認是不能使用的
  CPU控制硬件、不一樣的廠家硬件設備之間須要進行指令溝通,咱們須要驅動程序來進行「翻譯」;
  更趨近與開發的工程師,要學習「彙編語言」;而「彙編語言」被廠商所限制;
  C C++的底層就是彙編語言
如今編程:
  基於高級語言,以及超高級語言,更好的讓程序員可以的實現編程功能
編程語言的分類:
  高級語言
  超高級語言須要翻譯成計算機可讀的語言(二進制指令)
  解釋型--逐行翻譯執行,shell python java
  bash -x filename.sh
  編譯型---一次編譯,所有執行C語言 C++ C# java
  程序=指令+數據
  面向對象---側重數據的編程語言
  面向過程---側重於指令
  編程語言的執行方式:
    一、順序執行
    二、循環執行for(遍歷) while(循環條件) until(while相反)
    三、選擇執行---分支 if casejava

二、shell腳本語言介紹
  優勢:調用os(操做系統)的命令行,來實現全部功能。
  缺點:沒有庫調用(對比Python)

  shell腳本包括:1.命令 2.變量(全局變量、局部變量、本地變量、傳參)3.邏輯關係

  ·shell的第一句話
  #!/bin/bash -- 定義腳本解釋器

  /etc/shells -- 查看當前會話系統支持的shell程序
  echo $SHELL -- 查看當前會話的shell程序
  /etc/passwd -- 制定了用戶默認支持的shell程序(/sbin/nologin)python

  shell的執行:
  一、bash命令來執行腳本
  -n 查看shell腳本的邏輯錯誤
  -x 逐行顯示執行的腳本程序
  二、受權 chmod + x filename.sh
  使用全路徑執行腳本程序員

 

三、變量
  環境變量
  局部變量 declare:定義變量類型
  本地變量 local 在函數中使用

  變量類型:
    數值型:
    1.整型 int
    2.浮點型 float
    3.布爾值 0 1 (真Ture 假False)
  字符串:
    1.普通字符及字符串
    2.數組

   編程語言的分類:
    強類型語言--數值必須被定義,才能被處理或運算
    弱類型語言--編程語言能夠自動識別變量類型
    (多態 一個數據具備多個屬性,而最後使用的屬性取決於他進行運算的數據)
    傳參
      $? --上一條命令的執行狀態 0 正確 1-255 錯誤
      $1 $2..${10} --命令後面闖入腳本的數據,以空格爲分隔符
      $# --統計傳參的數量
      $* --表示全部傳參,全部的傳參以字符串形式進行傳輸出
      $@ --表示全部傳參,將全部的傳參以列表的形式進行輸出shell

   定義變量的格式:
    NAME=value =賦值 ==判斷
    declare 定義參數類型
    declare -i 整數
    declare -a 數組
    變量命名:
      1.下劃線的方式指定變量名稱
      2.駝峯命名方式
  
四、test文件測試、條件判斷
  在腳本中,咱們須要進行語句分支,須要進行test判斷實現

    使用格式:
    1.test[option]file
    2.[ 條件語句 ] !條件語句先後有空格

   常見的test選項:
      比較選項:
        -eq =
        -ne
        -gt >
        -ge >=
        -lt <
        -le <=
    判斷選項:
        -f 判斷是否爲普通文件
        -d 判斷是否爲目錄文件
        -L 判斷是否爲鏈接文件
        -r -w -x 判斷文件是否具備 讀 寫 執行 權限
    關聯選項:
        -o 或
        -a 與
        ! 非
    字符判斷:
        = 判斷字符串是否相同
        != 不等於
        -z 判斷字符串是否存在
        -n 和-z相反 編程

五、邏輯運算
    與 -- && 兩邊命令都爲真,結果爲真
    或 -- || 倆邊命令一邊爲真。結果爲真,同時爲假,結果爲假
    非 -- !=

    這個邏輯運算符,先後對接的都是單獨存在的命令

      [$? -eq 0] && exit 0 || exit 1數組

六、算數運算
      let 1+1 bash

          let a =1+1編程語言

          echo $a函數

      expr 1+1學習

          let a =1+1

          echo $a

      $[$1+10]

           a=$[2+3]

          echo $a

      $(($1/$2))

           a=$((3/2))

          echo $a

相關文章
相關標籤/搜索