深刻理解bash及字符串的處理

一、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 


信號捕捉用於:在中途停止時作一些清理操做

相關文章
相關標籤/搜索