城市獵人

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

          導(dǎo)航

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(3)

          文章分類(90)

          文章檔案(90)

          收藏夾(12)

          搜索

          •  

          最新評論

          Shell編程基礎(chǔ)(二)

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

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

              $SUN=sun
              $echo ${SUN}day

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

              第一種賦值:默認(rèn)賦值

          1$echo Hello $UNAME
          2

              結(jié)果顯示:Hello

          1$echo Hello ${UNAME: -Sailor}

              結(jié)果顯示:Hello Sailor

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

              echo hello ${uname:=sailor}
              顯示結(jié)果:hello sailor

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

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

              3、位置參數(shù) 
              $#    位置參數(shù)的數(shù)量
              $*    位置參數(shù)的內(nèi)容
              $?    命令執(zhí)行后返回的狀態(tài)
              $!    后臺運(yùn)行的最后一個進(jìn)程號
              $0    當(dāng)前執(zhí)行的進(jìn)程名
              $$    當(dāng)前進(jìn)程的進(jìn)程號

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

              5、位置參數(shù)
              位置參數(shù)是一種在調(diào)用shell程序的命令行中按照各自的位置決定的變量,是在程序名之后輸入的參數(shù)。位置參數(shù)之間用空格分隔,shell取第一個位置參數(shù)替換程序文件中的$1,取第二個替換S2,然后依次類推。
          主站蜘蛛池模板: 元氏县| 喀什市| 靖宇县| 阆中市| 高雄县| 余干县| 安新县| 牟定县| 鄂伦春自治旗| 周口市| 内丘县| 邵阳市| 洛隆县| 怀安县| 襄垣县| 东港市| 苏尼特左旗| 青铜峡市| 彩票| 红桥区| 双桥区| 庆云县| 义乌市| 闻喜县| 雷州市| 海伦市| 南华县| 东平县| 巩留县| 东源县| 清原| 济南市| 美姑县| 通渭县| 玉山县| 武宁县| 禄丰县| 开阳县| 红河县| 若尔盖县| 日喀则市|