ubuntu之shell編程學習筆記1——概述

1、查看shell版本命令

    bash  --version

2、查看別名

   alias

3、查看命令的類型

   type + 命令

4、刪除別名

   unalias, 暫時不想使用別名,使用\,例子:\ls

5、如何執行一個shell腳本

6、shell變量

    本地變量,只在創建它的shell中有效,

    賦值 ------ 變量名=值 (等號兩邊不可以有空格,如果賦值包括空格,空格必須用引號引起來)

   shell變量對大小寫敏感的,必須以字母和下劃線開頭。

   清除變量------unset +變量名(例子  unset name)

   使用set命令可以查看當前本地定義的所有shell變量

7、shell變量的擴展應用

   ${name:-word}----------------  當變量name已被設置且非空,這顯示name的值,否則顯示word

   ${name:+word} ----------------當變量name已被設置且非空,這顯示word的值,否則什麼都不顯示,代入空的值

   ${name:=word}----------------  當變量name已被設置且非空,這顯示name的值,否則顯示word的值,且變量name始終賦值爲word

   ${name:?word}}----------------  當變量name已被設置且非空,這顯示name的值,否則顯示word的值,並且從shell退出

   ${name:offset}  或${name:offset:length}  ---------獲取變量name值中從offset開始的子串,或者獲取從offset開始長度爲length的子串。

  例子:name="what is your name?"   echo ${name:3}  ------輸出:t is your name?

   ${var/parten/replacement}----------用replacement來替換變量var中第一個與parten匹配的串,局部匹配

  例子:echo ${name/is/IS} --------what IS your name?

   ${var//parten/replacement}----------用replacement來替換變量var中所有與parten匹配的串,全局匹配

  例子:echo ${name/a/A} --------whAt IS your nAme?

8、變量設置成爲只讀的

       變量賦值後,就不在賦值,只能讀,例子:name="welcome shell  word!"      readonly name  ,注意只讀的變量不能用unset命令清除。

9、環境變量

      1、環境變量全局可以調用。2、環境變量可以自己定義,但必須大寫,用export導出,但用戶註銷後這些值就丟失,

       例子:NAME=shell  export  NAME , 自定義一個NAME環境變量。顯示環境變量:$NAME

      如果想要保證NAME在用戶註銷後不被清除,可以在系統初始化文件中編寫。

10、變量的長度

     ${#name}  可以得出name變量的長度,注意:如果name是個數組,那麼${#name}是數組第一個元素的長度

     例子:name=(a bb ccc ddd)    echo ${#name}    ----輸出:1  

                 ${#name[*]}  --輸出:4(即數組namde的元素個數),${name[2]}------輸出:ccc

11、指定類型的變量

 格式:關鍵字declare 或者typeset +[-option]  +變量名

  -option     -i 整數,-r只讀,-a數組,-x export  ,-f函數

例子:  declare -r var  等同於  readonly  var
               declare -i number

12、變量間接引用

    例子  admin=willson

              willson=myname

             echo ${admin}---------willson

             eval  admin=\$$admin              !--變量間接引用

              echo ${admin}-------myname

13、隨機數

      $RANDOM

14、位置變量

      $0 ,$1,$2,$3......................................¥9        $0是腳本名稱,$1是第一個參數,$2是第二個參數。。。。。。。。。。。。

15、特定變量參數

     $#---------傳遞到腳本的參數個數

     $*---------以一個單字符串顯示所有向腳本傳遞的參數

     $!---------後臺運行的最後一個進程的進程ID

     $$--------腳本運行的當前進程ID

    $- ---------顯示腳本shell使用的當前選項,與set命令功能相同

    $@--------與$#相同,但是在使用中加引號,並在引號中返回每個參數

    $?---------顯示最後命令退出的狀態,0表示沒有錯誤,其他值表示異常    例如:mkdir  adc    echo $?   ----輸出:0

16、引用

   ""--雙引號:可以引號除$,`,\外的任意字符或字符串

   ``    ---反引號 :引用命令    例如  name="你所在的目錄`pwd`"    ----你所在的目錄/root/shell"   

   ''--單引號  :變量原樣輸出

  \---反斜槓 :轉義符         例如:echo  $$    ---輸出當前進程的ID  ,echo  \$$----  $$

17、  echo  "$name"    name原樣輸出    例如  name="a b     c        d"    echo "$name"

發佈了17 篇原創文章 · 獲贊 8 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章