一、bash的內置變量shell
$PATH 環境變量路徑數組
$HOSTNAME 系統主機名bash
$UID 系統當前用戶ID編輯器
$HISTFILE 歷史文件存放路徑ide
$HISTSIZE 系統能夠保存的歷史記錄條目數函數
$HISTFILESIZE 歷史文件能夠保存的歷史記錄條目數post
$HISTCONTROL 歷史命令顯示控制spa
$BASH bash二進制程序文件的路徑命令行
$BASH_SUBSHELL 子shell的層次進程
$BASH_VERSION shell版本
$EDITOR 系統默認編輯器
$EUID 有效的用戶ID
$UID 用戶的ID號
$FUNCNAME 當前函數的名稱
$GROUPS 當前用戶所屬的組
$HOME 當前用戶的家目錄
$HOSTTYPE 主機類型,用來識別系統硬件是32位仍是64位
$MACHTYPE 平臺類型
$OSTYPEOS 類型
$OLDPWD 上次所在路徑
$PWD 當前路徑
$IFS 輸入數據時字段分隔符,默認爲空白符(空格、製表符、換行符)
$PPID 父進程ID
$PS1 主提示符
$PS2 第二提示符,補充徹底命令輸入時的提示符
$PS3 第三提示符,用於select命令中
$PS4 第四提示符,當使用-x選項調用腳本時,顯示的提示符,默認爲+號
$SECONDS 當前腳本已經運行的時長
$SHLVL shell級別,bash被嵌入的深度
二、特殊變量
$0 腳本名稱自身
$1, $2, ... 位置參數
$# 命令行參數個數
$* 全部的參數,被看成一個字符串
$@ 全部的參數,每一個參數都是一個獨立的字符串
$! 運行於後臺的最後一個做業的PID
$_ 上一條命令的最後一個參數的值
$? 上一條命令狀態返回值
$$ 腳本自身的PID
三、操做字符串
${variable}: 變量引用
${varible:-default}:若是variable沒有聲明或者爲空,則返回default字串,不然返回variable自身的值
${varible:+default}:若是variable沒有聲明或者爲空,則返回空字串,不然返回default
${varible:=default}:若是variable沒有聲明或者爲空,則返回default字串,而且將default賦值給variable,不然返回variable自身值
${varible:?default}:若是variable沒有聲明或者爲空,則以default爲錯誤信息返回,不然返回variable自身的值
${#variable}: 返回變量中字符串的長度
子串消除:
${varilable#*pattern}: 查找variable中自左而右第一次被pattern匹配到的串,將此串及向左的全部內容都刪除
${varilable##*pattern}: 查找variable中自左而右最後一次被pattern匹配到的串,將此串及向左的全部內容都刪除
${varilable%pattern*}: 查找variable中自右而左第一次被pattern匹配到的串,將此串及向右的全部內容都刪除
${varilable%%pattern*}: 查找variable中自右而左最後一次被pattern匹配到的串,將此串及向右的全部內容都刪除
取子串:
${variable:pos}: 取從pos+1開始日後的全部字符
${variable:pos:num}: 取從post+1開始日後的num個字符
子串替換
${variable/Pattern/Replacement}: 以Pattern爲模塊匹配variable中的字串,將第一次匹配到的內容替換爲Replacement
${variable//Pattern/Replacement}:以Pattern爲模塊匹配variable中的字串,將匹配到的內容所有替換爲Replacement
四、聲明變量:
declare
-i: 整型
-a: 數組
-x: 環境變量
-r: 只讀變量,至關於readonly
-f: 聲明函數