一、bash的內置變量:shell
PATH PS1 HOSTNAME UID HISTFILE HISTEILESIZE HISTCONTROL編程
$BASH:bash二進制程序文件的路徑bash
$BASH_SUBSHELL:子shell的層次架構
$BASH_VERSION編輯器
$EDITOR:默認編輯器ide
$EUID:有效的用戶ID
函數
$UID:當前用戶的ID號命令行
$FUNCNAME:當前函數的名稱
進程
$GROUPS:當前用戶顯示的組
字符串
$HOME:當前用戶的家目錄
$HOSTTYPE:主機架構類型,用來識別系統硬件
$MACHTYPE:平臺類型,系統平臺依賴的編譯平臺
$OSTYPE:OS系統類型
$IFS:輸入數據時的字段分隔符,默認是空白符(空格、製表符、換行符)
$OLDPWD:上次使用的目錄
$PWD:當前目錄
$PPID:父進程
$PS1:主提示符
$PS2:第二提示符,主要用於補充徹底命令輸入時的提示符
$PS3:第三提示符,用於select命令中
$PS4:第四提示符,當使用-X選項調用腳本時,顯示的提示符,默認爲+號
$SECONDS:當前腳本已經運行的時長
$SHLVL:shell的級別。bash別嵌入的深度
二、特殊變量:
$0:腳本名稱自身
$1,$2。。。。:位置參數
$#:命令行參數個數
$*:全部的參數,被看成一個字符串
$@:全部的參數,每一個參數都是一個獨立的字符串
$-:傳遞給腳本的標記
$!:運行於後臺的最後一個做業的PID
$_:上一條命令的最後一個參數的值
$?:上一條命令狀態的返回值
$$:腳本自身的PID
操做變量:
${#var} :返回變量中字符串的長度
${var}:變量引用
${var:-default}:若是var沒有聲明或者爲空,則返回default字串,不然返回var自身的值
${var:+default}:若是var沒有聲明或者爲空,則返回空字串,不然返回default的值
${var:=default}:若是var沒有聲明或者爲空,則返回default字串,而且將default賦值給var,不然返回var自身的值
${var:?default}:若是var沒有聲明或者爲空,則以default爲錯誤信息返回,不然
zb 返回var自身的值
字串消除
${var#*word}:查找var中自左而右第一個被word匹配到的串,並將此串及向左的全部內容都刪除
${var##*word}:查找var中自左而右最後一次被word匹配到的串,並將此串及向左的全部內容都刪除
${var%word*}:查找var中自右而左第一個被word匹配到的串,並將此串及向右的全部內容都刪除
${var%%word*}:查找var中自右而左最後一次被word匹配到的串,並將此串及向右的全部內容都刪除
取字串:
${var:pos}:偏移pos個字符,取餘下的字串
name=jerry,${name:2}結果爲rry
${var:pos:num}偏移pos個字符,取num個字符長度的字串
name='hello world' ${name:2:5}結果爲llo w
字串替換
${var/Pattern/Replaceplacement} :以Pattern爲模式匹配var中的字串,將第一次匹配到的替換爲Replaceplacement
${var// Pattern/Replaceplacement} :以Pattern爲模式匹配var中的字串,將所有匹配到的替換爲Replaceplacement6
聲明變量:
declare
-i:×××
-a:數值
-x:環境變量
-r:只讀變量,不能撤銷,不能修改,至關於readonly
-f:聲明函數
bash編程的信號捕獲(KILL沒法捕捉)
trap 陷阱
#查看信號
kill -l
#使用方法,命令加信號
trap ‘command’ signal
信號捕捉用於:在中途停止時作一些清理操做