bash變量和邏輯運行
阿新 • • 發佈:2017-10-06
例如 進行 字符類型 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進程中的某一個代碼片段
- 本地變量:當前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變量和邏輯運行