linux ---- Shell ---- 2基本文法

來源:互聯網
上載者:User

linux ---- Shell ---- 2基本文法 3. Shell的基本文法 1> 變數 通常,Shell的變數是大寫字母加底線組成的。 環境變數 可以從父進程傳給子進程 本地變數 只存在於當前Shell進程,用set命令可以查看當前Shell進程中的所有定義的所有變數(包括本地變數和環境變數)和函數。 環境變數是所有進程都有的概念,而本地變數是Shell特有的概念。在Shell中,環境變數和本地變數的定義和用法相似。在Shell中定義和賦值一個變數如下: ------------------------------ $ VARNAME=value ------------------------------ 格式注意:等號兩邊都不要有空格, 否則會被Shell解釋成為命令或者命令列參數 一個變數定義後,他就是本地變數,只屬於當前的Shell, 我們可以通過命令export把本地變數匯出環境變數,如下: ------------------------------ $ export VARNAME=value ------------------------------ 用unset命令,可以刪除已經定義的本地變數或者環境變數,如下: ------------------------------ $ unset VARNAME ------------------------------ 引用變數的值: 如果一個變數叫做VARNAME,用${VARNAME}可以表示它的值   注意: 在定義變數時,不用$, 取變數時要用 $。和C語言不同的是, Shell變數不需要明確類型, 事實上,Shell變數的值都是字串,比如,我們定義VAR=45, VAR的值其實是字串45,而非整數45。Shell不需要先定義後使用,如果一個沒有定義的變數取值,那麼他的值就是Null 字元串。   2> 檔案名稱代換:? / * / [] 其實就是萬用字元的意思。 *   匹配0個或多個任一字元?   匹配一個任一字元[若干字元] 匹配方括弧中任意一個字元的一次出現   ----------------------------------------------- $ ls /dev/ttyS* $ ls ch0?.doc $ ls ch0[0-2].doc $ ls ch[012][0-9].doc ----------------------------------------------- 注意:以上所匹配的檔案名稱,是由Shell展開的,也就是說, Shell先展開ls後面的所有符合規則的檔案名稱, 然後全部以命令列參數傳給ls.   3> 命令代換:`或 $()  由反引號括起來的也是一條命令,Shell先執行該命令,然後將輸出結果立刻代換到當前命令列中。  ------------------------------------------------  $ DATE=`date`                        =====>>>>  $ DATE=$(date)  $ echo $DATE  ------------------------------------------------ 4> 算術代換: $(()) 用於算術計算,$(())中的Shell變數取值將轉換成整數,例如: ------------------------------------------------- $ VAR=45 $ echo $(($VAR+3)) ------------------------------------------------- 注意: $(())中只能用+-*/和()運算子,並且只能做整數運算。 5> 轉意字串 \ 和C語言類似,目的是為了去除其後單個字元的特殊意義。 6> 單引號 和C語言不一樣,Shell指令碼中的單引號和雙引號一樣都是字串的界定符(雙引號下一節介紹),而不是字元的界定符。單引號用於保持引號內所有字元的字面值,即使引號內的\和斷行符號也不例外,但是字串中不能出現單引號。如果引號沒有配對就輸入斷行符號,Shell會給出續行提示符,要求使用者把引號配上對。 7> 雙引號 雙引號用於保持引號內所有字元的字面值(斷行符號也不例外),但以下情況除外: $加變數名可以取變數的值反引號仍表示命令替換\$表示$的字面值\`表示`的字面值\"表示"的字面值\\表示\的字面值除以上情況之外,在其它字元前面的\無特殊含義,只表示字面值 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.