1、bash的内置變量
$PATH 環境變量路徑
$HOSTNAME 系統主機名
$UID 系統目前使用者ID
$HISTFILE 曆史檔案存放路徑
$HISTSIZE 系統可以儲存的曆史記錄條目數
$HISTFILESIZE 曆史檔案可以儲存的曆史記錄條目數
$HISTCONTROL 曆史指令顯示控制
$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被嵌入的深度
2、特殊變量
$0 腳本名稱自身
$1, $2, ... 位置參數
$# 指令行參數個數
$* 所有的參數,被當作一個字元串
$@ 所有的參數,每個參數都是一個獨立的字元串
$! 運作于背景的最後一個作業的PID
$_ 上一條指令的最後一個參數的值
$? 上一條指令狀态傳回值
$$ 腳本自身的PID
3、操作字元串
${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
4、聲明變量:
declare
-i: 整型
-a: 數組
-x: 環境變量
-r: 隻讀變量,相當于readonly
-f: 聲明函數
本文轉自開源殿堂 51CTO部落格,原文連結:http://blog.51cto.com/kaiyuandiantang/1964719,如需轉載請自行聯系原作者