城市獵人

          在一網情深的日子里,誰能說得清是苦是甜,只知道確定了就義無反顧
          posts - 1, comments - 7, trackbacks - 0, articles - 89

          導航

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(3)

          文章分類(90)

          文章檔案(90)

          收藏夾(12)

          搜索

          •  

          最新評論

          Shell編程基礎(二)

          Posted on 2008-10-18 21:40 sailor 閱讀(480) 評論(0)  編輯  收藏 所屬分類: linux
          二、Shell基本語法
              shell程序采用$var的形式來引用名為var的變量的值。
              Shell有以下幾種基本類型的變量:
              shell定義的環境變量;
              用戶自定義變量;
              位置參數;
              預定義變量;
              參數置換變量;

              1、shell定義的環境變量
              shell在開始執行時就已經定義了一些和系統工作環境相關的變量,用戶還可以重新定義這些變量。
              HOME    用于保存注冊目錄的完全路徑名;
              PATH     用于保存用冒號分割的目錄路徑名;
              TERM    終端類型;
              UID        當前用戶的識別字,它取的是由數位構成的字符串;
              PWD      當前絕對路徑
              
              2、用戶自定義變量
              語法:變量名=變量值
              在定義變量時,變量名前不需要加$,在引用變量時則在變量名前加$;
              在給變量賦值時,等號兩邊一定不能留有空格,若變量本身包含有空格,則整個字符串加“”;
              變量名用大寫字母表示,變量名由字母和下劃線組策劃那個,變量名第一個字符不能是數字。

              $SUN=sun
              $echo ${SUN}day

              在應用shell變量時,可以在變量名字兩邊$后面加上{},以便更清楚地顯示給shell。
              
              ${variable:-value}
              variable是一個變量值,value是變量替換使用的默認值。

              第一種賦值:默認賦值

          1$echo Hello $UNAME
          2

              結果顯示:Hello

          1$echo Hello ${UNAME: -Sailor}

              結果顯示:Hello Sailor

              第二種賦值:不但使用默認值進行替換,而且將默認值賦值給該變量
              ${var:=value}

              echo hello ${uname:=sailor}
              顯示結果:hello sailor

              echo $uname
              顯示結果:sailor
              
              第三種變量賦值:只有當變量已賦值時才用制定替換形式:
              ${var:+value}
              
              $ERROPT=a
              $echo ${ERROPT:+'Error tracking is active'}
              顯示結果:Error tracking is active

              還可以用錯誤檢查的條件進行變量替換
              ${var:?message}

              3、位置參數 
              $#    位置參數的數量
              $*    位置參數的內容
              $?    命令執行后返回的狀態
              $!    后臺運行的最后一個進程號
              $0    當前執行的進程名
              $$    當前進程的進程號

              4、參數置換的變量
              變量=${參數-word}:如果設置了參數,則用參數的值置換變量的值,否則用word置換。
              變量=${參數=word}:如果設置了參數,則用參數的值置換變量的值,否則把變量置換成word,然后再用word替換參數的值。
              變量=${參數?word}:如果設置了參數,則用參數的值置換變量的值,否則就顯示word并從shell中退出,如果省略了word,就顯示標準信息。
              變量=${參數+word}:如果設置了參數,就用word置換變量,否則不進行置換。

              5、位置參數
              位置參數是一種在調用shell程序的命令行中按照各自的位置決定的變量,是在程序名之后輸入的參數。位置參數之間用空格分隔,shell取第一個位置參數替換程序文件中的$1,取第二個替換S2,然后依次類推。
          主站蜘蛛池模板: 通江县| 都匀市| 海门市| 清新县| 永宁县| 东城区| 会宁县| 乐平市| 新源县| 黔江区| 义马市| 教育| 湾仔区| 永兴县| 叶城县| 紫金县| 竹北市| 静海县| 如东县| 东阿县| 苍溪县| 江华| 昆明市| 深州市| 台州市| 凌源市| 二连浩特市| 铜川市| 隆回县| 灌云县| 武胜县| 孟州市| 平南县| 荔波县| 吉安县| 通榆县| 隆德县| 唐山市| 石渠县| 洪泽县| 东安县|