1. 程式人生 > >bash變量和邏輯運行

bash變量和邏輯運行

例如 進行 字符類型 bash腳本 bash特性 分隔 計算 弱類型 邏輯運算

(一)bash特性及bash腳本編程初步

  • 如果相與計算機進行交互,必須有一個終端,以及附著在終端上的接口程序
    • GUI:KDE,GNome,Xfce
    • CLI:/etc/shells
  • bash特性
    • 命令行展:~,{}
    • 命令別名:alias,unalias
    • 命令歷史:history
    • 文件名通配:glob
    • 快捷鍵:ctrl+a,e,u,k,l
    • 命令補全:$PATH
    • 路徑補全
    • 命令hash:
      • 緩存此前命令的查找結果:key-value格式
      • hash命令
        • 直接單獨使用,查看緩存的之前的命令
        • hash -d COMMAND:刪除緩存的某個命令
        • hash -r:清空緩存
    • 變量:
      • 程序=指令+數據
        • 指令:由程序文件提供
        • 數據:IO設備,文件,管道,變量,等等
      • 程序=算法+數據結構
      • 變量名+指向的內存空間
      • 變量賦值:name=value
      • 變量的數據類型:存儲格式,數據範圍,參與的運算
        • 字符類型
        • 值類型
          • 精確數值類型
          • 非精確數值類型
      • bash使用弱類型編程語言,
        • 把所有變量統統視為字符類型,
        • 當做加減運算的時候,自動轉化為數值類型
        • 不支持浮點類型,除非借助於第三方工具
        • 變量無需事先聲明
      • bash中的變量引用:${Var_Name},花括號可以省略,$Var_Name
      • 變量名:只能包含數字,字母,下劃線,不能以數字開頭,不能使用保留字
      • bash變量類型:
        • 根據作用範圍
          • 本地變量:當前shell進程,子進程無效
            • 變量賦值:name=value
            • 變量引用:${Var_Name},花括號可以省略,$Var_Name
              • 雙引號是弱引用,變量名會替換為其值
              • 單引號是強引用,變量不會替換為其值
            • 查看變量:set
            • 撤銷變量:unset NAME
          • 環境變量:當前shell進程及其子進程
            • 變量賦值:
              • 方法一:export name=value,或者分開寫,name = value 再export name
              • 方法二:declare -x name=value,或者分開寫,name=value,再declare -x name
            • 變量引用:與本地變量一樣。
              • bash內嵌了許多環境變量(通常為全大寫字符),用於定義bash的工作環境,例如:PATH,HISTFILE,HISTSIZE,HISTFILESIZE,HISTCONTROL,SHELL,HOME,UID,PWD,OLDPWD
            • 查看變量:
              • export
              • declare -x
              • printenv
              • env
            • 撤銷變量:unset NAME
          • 局部變量:當前shell進程中的某一個代碼片段
        • 只讀變量:
          • declare -r NAME表示把一個變量變成只讀格式
          • 或者readonly NAME
          • 只讀變量無法重新賦值,並且無法撤銷,除非shell進程終止
        • 位置參數變量:向執行腳本的shell進程傳遞的參數
        • 特殊變量:shell內置的有特殊功用的變量
          • $?:上一個命令的執行狀態結果,0表示成功,1-255表示各種失敗
    • 多命令執行
      • 同一行中用分號分隔:COMMAND1;COMMAND2;COMMAND3;...
  • 邏輯運算
    • 真:true,yes,on,1
    • 假:false,no,off,0
    • 與,或,非,異或
    • 短路機制:如果前一個命令已經可以判斷結果了,後面的命令就不執行了。
      • id $UserName || useradd $UserName

bash變量和邏輯運行