1七、內置變量、特殊變量、字符操做、聲明變量 學習筆記

一、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: 聲明函數

相關文章
相關標籤/搜索