shell學習經典

來源:互聯網
上載者:User
七種檔案類型

d            目錄                                                       l             符號連結

s             通訊端檔案                                           b            塊裝置檔案

c            字元裝置檔案                                       p            具名管道檔案

-             普通檔案 Regex

從一個檔案或命令輸出中抽取或過濾文本時。可使用Regex(RE),Regex是一些特殊或不很特殊的字串模式的集合。

       基本的元字元集:

       ^                   只匹配行首。

       $                   只匹配行尾。

       *                   一個單字元後緊跟*,匹配0個或多個此單字元。

       []                   匹配[]內字元,可以是一個單字元,也可以是字元序列。可以使

              用-來表示[]內範圍,如[1-5]等價於[1,2,3,4,5]。

\                    屏蔽一個元字元的特殊含義,如\$表示字元$,而不表示匹配行

                    尾。

       .                 匹配任意單字元。

       pattern\{n\}   匹配pattern出現的次數n

       pattern\{n,\}m匹配pattern出現的次數,但表示次數最少為n

       pattern\{n,m\} 匹配pattern出現的次數在n與m之間(n,m為0-255)

幾個常見的例子:

       顯示可執行檔檔案:ls –l | grep …x...x..x

       只顯示檔案夾:ls –l | grep  ^d

       匹配所有的空行:^$

       匹配所有的單詞:[A-Z a-z]*

       匹配任一非字母型字元:[^A-Z a-z]

       包含八個字元的行:^……..$(8個.) 字元類描述

以下是可用字元類的相當完整的列表:

[:alnum:] 字母數字 [a-z A-Z 0-9]

[:alpha:] 字母 [a-z A-Z]

[:blank:] 空格或製表鍵

[:cntrl:] 任何控制字元

[:digit:] 數字 [0-9]

[:graph:] 任何可視字元(無空格)

[:lower:] 小寫 [a-z]

[:print:] 非控制字元

[:punct:] 標點字元

[:space:] 空格

[:upper:] 大寫 [A-Z]

[:xdigit:] 十六進位數字 [0-9 a-f A-F]

儘可能使用字元類是很有利的,因為它們可以更好地適應非英語 locale(包括某些必需的重音字元等等). shell的引號類型

shell共有四種參考型別:

       “ ”          雙引號

       ‘ ’           單引號

` `         反引號

\            反斜線

l        “ ” 可引用除$、` 、\ 、外的任一字元或字串,“ ”中的變數能夠正常顯示變數值。

l        ‘ ’與“ ”類似,不同在於shell會忽略任何的引用值。

              例如: GIRL=‘girl’

                        echo “The ‘$GIRL’ did well”

              則列印:The ‘girl’ did well

l        ` `用於設定系統命令的輸出到變數,shell會將` `中的內容作為一個系統命令並執行質。

              例如:echo `date` 則列印當前的系統時間。

l        \ 用來屏蔽特殊含義的字元:&  *  +  ^  $  `  “  |  ?

例如:expr 12 \* 12 將輸出144 變數設定時的不同模式:

valiable_name=value           設定實際值到 variable_name中

valiable_name+value           如果設定了variable_name,則重設其值

valiable_name:?value           如果未設定variable_name,則先顯示未定義使用者錯誤資訊

valiable_name?value           如果未設定variable_name,則顯示系統錯誤資訊

valiable_name:=value   如果未設定variable_name,則設定其值

valiable_name-value            同上,但取值並不設定到variable_name 條件測試

test命令用於測試字串、檔案狀態和數字,expr測試和執行數值輸出。

Test格式:test condition 或 [ condition ](需要特別注意的是condition的兩邊都要有一個空格,否則會報錯),test命令返回0表示成功。

l        下面將分別描述test的三種測試:

n        檔案狀態測試(常用的)

-d           測試是否檔案夾

-f            測試是否一般檔案

-L          測試是否連結檔案

-r           測試檔案是否可讀

-w         測試檔案是否可寫

-x           測試檔案是否可執行

-s           測試檔案是否非空

n        字串測試

五種格式: test  “string”

                            test  string_operator  “string”

                            test  “string”  string_operator  “string”

                            [ string_operator  “string” ]

                            [ “string”  string_operator  “string” ]

其中string_operator可以為:       =     兩字串相等

                                                               !=    兩字串不等

                                                               -z   空串

                                                               -n   非空串

n        數值測試

兩種格式: “number”  number_operator  “number”

                            [ “number”  number_operator  “number” ]

其中:number_operator 可以為:-eq  、-ne、-gt、-lt、-ge

例如:  NUMBER=130

                     [ “990”  –le  “995”  –a  “NUMBER”  -gt  “133” ]

                     (其中-a表示前後結果相“與”)

l        expr命令一般用於整數值,但也可以用於字串。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.