最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shell編程基礎(chǔ)知識小結(jié)

 更新時間:2013年02月23日 13:18:56   作者:  
這篇文章主要介紹了shell編程基礎(chǔ)知識,包括文件類型、正則表達(dá)式、字符類、引號類型、變量設(shè)置、條件測試、命令執(zhí)行順序、腳本調(diào)試方面的介紹

1、文件類型介紹
linux系統(tǒng)中主要包括以下七種文件類型: d 目錄 - 普通文件 l 符號鏈接 s 套接字文件 b 塊設(shè)備文件 c 字符設(shè)備文件 p 命名管道文件

2、正則表達(dá)式
正則表達(dá)式在shell編程中非常重要。

從一個文件或命令輸出中抽取或過濾文本時??墒褂谜齽t表達(dá)式(RE),正則表達(dá)式是一些特殊或不很特殊的字符串模式的集合。

基本的元字符集:
^ 只匹配行首。
$ 只匹配行尾。
* 一個單字符后緊跟*,匹配0個或多個此單字符。
[] 匹配[]內(nèi)字符,可以是一個單字符,也可以是字符序列。可以使用-來表示[]內(nèi)范圍,如[1-5]等價于[1,2,3,4,5]。
屏蔽一個元字符的特殊含義,如$表示字符$,而不表示匹配行尾。
. 匹配任意單字符。
pattern{n}   匹配pattern出現(xiàn)的次數(shù)n
pattern{n,}m匹配pattern出現(xiàn)的次數(shù),但表示次數(shù)最少為n
pattern{n,m} 匹配pattern出現(xiàn)的次數(shù)在n與m之間(n,m為0-255)

常見例子:
顯示可執(zhí)行的文件:ls –l | grep …x...x..x
只顯示文件夾:ls –l | grep  ^d
匹配所有的空行:^$
匹配所有的單詞:[A-Z a-z]*
匹配任一非字母型字符:[^A-Z a-z]
包含八個字符的行:^……..$(8個.)

更多內(nèi)容,請查閱正則表達(dá)式的詳細(xì)資料加深學(xué)習(xí)。

3、字符類描述
常用的可用字符類列表:
[:alnum:] 字母數(shù)字 [a-z A-Z 0-9]
[:alpha:] 字母 [a-z A-Z]
[:blank:] 空格或制表鍵
[:cntrl:] 任何控制字符
[:digit:] 數(shù)字 [0-9]
[:graph:] 任何可視字符(無空格)
[:lower:] 小寫 [a-z]
[:print:] 非控制字符
[:punct:] 標(biāo)點字符
[:space:] 空格
[:upper:] 大寫 [A-Z]
[:xdigit:] 十六進(jìn)制數(shù)字 [0-9 a-f A-F]

使用字符類可以更好地適應(yīng)非英語 locale(包括某些必需的重音字符等)。

4、引號類型
shell中共有四種引用類型:
“ ”雙引號
‘ '單引號
` `  反引號
    反斜線

說明:
“ ”可引用除$、` 、 、外的任意字符或字符串,“ ”中的變量能夠正常顯示變量值。
‘ '與“ ”類似,不同在于shell會忽略任何的引用值。
例如: GIRL=‘girl'
       echo “The ‘$GIRL' did well”
       則打?。篢he ‘girl' did well

說明:
 ` `用于設(shè)置系統(tǒng)命令的輸出到變量,shell會將` `中的內(nèi)容作為一個系統(tǒng)命令并執(zhí)行質(zhì)。
    例如:echo `date` 則打印當(dāng)前的系統(tǒng)時間。

說明:
    用來屏蔽特殊含義的字符:&  *  +  ^  $  `  “  |  ?
    例如:expr 12 * 12 將輸出144

5、變量設(shè)置的幾種模式
變量設(shè)置時的不同模式:
valiable_name=value   設(shè)置實際值到 variable_name中
valiable_name+value   如果設(shè)置了variable_name,則重設(shè)其值
valiable_name:?value  如果未設(shè)置variable_name,則先顯示未定義用戶錯誤信息
valiable_name?value   如果未設(shè)置variable_name,則顯示系統(tǒng)錯誤信息
valiable_name:=value  如果未設(shè)置variable_name,則設(shè)置其值
valiable_name-value   同上,但取值并不設(shè)置到variable_name

注:以上幾種模式的靈活應(yīng)用,將在很大程度上提升編程技巧。

6、條件測試
test命令用于測試字符串、文件狀態(tài)和數(shù)字,expr測試和執(zhí)行數(shù)值輸出。
Test格式:test condition 或 [ condition ](需要特別注意的是condition的兩邊都要有一個空格,否則會報錯),test命令返回0表示成功。
下面將分別描述test的三種測試:
文件狀態(tài)測試(常用的)
-d           測試是否文件夾
-f            測試是否一般文件
-L          測試是否鏈接文件
-r           測試文件是否可讀
-w         測試文件是否可寫
-x           測試文件是否可執(zhí)行
-s           測試文件是否非空

1、字符串測試
五種格式: test  “string”
           test  string_operator  “string”
           test  “string”  string_operator  “string”
           [ string_operator  “string” ]
           [ “string”  string_operator  “string” ]
其中string_operator可以為:
    = 兩字符串相等
    !=    兩字符串不等
    -z   空串
    -n   非空串

2、數(shù)值測試
兩種格式: “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表示前后結(jié)果相“與”)

expr命令一般用于整數(shù)值,但也可以用于字符串。
格式:  expr srgument operator operator argument
例如:  expr 10 + 10
        expr 10 ^ 2 (10的平方)
        expr $value + 10

增量計數(shù)--expr在循環(huán)中最基本的用法
例如:  LOOP=0
        LOOP=`expr $LOOP + 1`

3、模式匹配:通過指定的冒號選項計算字符串中的字符數(shù)
例如:  value=account.doc
        expr $value : `(.*).doc`
        輸出 account

7、命令執(zhí)行順序

&& 成功執(zhí)行一個命令后再執(zhí)行下一個
|| 一個命令執(zhí)行失敗后再執(zhí)行另一個命令
( ) 在當(dāng)前shell中執(zhí)行一組命令(格式:(命令1;命令2; ……))
{ } 同( )
例如:  comet mouth_end || ( echo “hello” | mail dave ;exit )
 如果沒有( ),則shell將直接執(zhí)行最后一個命令(exit)

在shell編程中,命令執(zhí)行順序,有時決定了一個程序的執(zhí)行結(jié)果,而&&與||應(yīng)用最為廣泛。

8、腳本調(diào)試
腳本調(diào)試
最有用的調(diào)試腳本的工具是echo命令,可以隨時打印有關(guān)變量或操作的信息,以幫助定位錯誤。
也可使用打印最后狀態(tài)($?) 命令來判斷命令是否成功,這時要注意的是要在執(zhí)行完要測試的命令后立即

輸出$?,否則$?將會改變。

Set命令也可以用來輔助腳本測試:
Set –n           讀命令但是不執(zhí)行
Set –v           顯示讀取的所有的行
Set –x           顯示所有的命令及其參數(shù)
要關(guān)閉set選項,只要把-換成+就可以了。

相關(guān)文章

  • shell腳本學(xué)習(xí)指南[六](Arnold Robbins & Nelson H.F. Beebe著)

    shell腳本學(xué)習(xí)指南[六](Arnold Robbins & Nelson H

    這篇文章主要介紹了shell腳本學(xué)習(xí)指南[六](Arnold Robbins & Nelson H.F. Beebe著),需要的朋友可以參考下
    2014-02-02
  • 一個簡單的linux命令 cp

    一個簡單的linux命令 cp

    這篇文章主要介紹了一個簡單的linux命令cp,cp命令用來復(fù)制文件或者目錄,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Linux 下的 unzip 命令使用示例詳解

    Linux 下的 unzip 命令使用示例詳解

    Unzip 是一個在 Unix 或類 Unix 系統(tǒng)(例如 Linux)中常用的命令行工具,用于解壓縮由 ZIP 壓縮算法創(chuàng)建的壓縮文件,本文給大家介紹Linux 下的 unzip 命令使用示例詳解,感興趣的朋友一起看看吧
    2023-11-11
  • hbase-shell批量命令執(zhí)行腳本的方法

    hbase-shell批量命令執(zhí)行腳本的方法

    今天小編就為大家分享一篇hbase-shell批量命令執(zhí)行腳本的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • linux bash shell中case語句的實例

    linux bash shell中case語句的實例

    本文介紹下,在bash shell編程中,有關(guān)case語句的一個例子,學(xué)習(xí)下case語句的用法,有需要的朋友參考下
    2013-11-11
  • shell高級學(xué)習(xí)之正則表達(dá)式

    shell高級學(xué)習(xí)之正則表達(dá)式

    這篇文章主要給大家介紹了關(guān)于shell高級學(xué)習(xí)之正則表達(dá)式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用shell具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 一個shell小案例(創(chuàng)建日期目錄)

    一個shell小案例(創(chuàng)建日期目錄)

    需要在多個目錄中 (如:beijing shanghai tianjin guangzhou 等等) 創(chuàng)建子目錄(以年份命名),然后進(jìn)入子目錄,新建目錄并以當(dāng)天的日期命名
    2016-08-08
  • shell中嵌套執(zhí)行expect命令實例

    shell中嵌套執(zhí)行expect命令實例

    這篇文章主要介紹了shell中嵌套執(zhí)行expect命令實例,一直都想把expect的操作寫到bash腳本里,這樣就不用我再寫兩個腳本來執(zhí)行了,需要的朋友可以參考下
    2014-12-12
  • 利用shell腳本遍歷文件夾內(nèi)所有的文件并作整理統(tǒng)計的方法

    利用shell腳本遍歷文件夾內(nèi)所有的文件并作整理統(tǒng)計的方法

    今天小編就為大家分享一篇利用shell腳本遍歷文件夾內(nèi)所有的文件并作整理統(tǒng)計的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Shell腳本之Expect免交互的實現(xiàn)

    Shell腳本之Expect免交互的實現(xiàn)

    這篇文章主要介紹了Shell腳本之Expect免交互的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評論

含山县| 梅河口市| 白山市| 肇庆市| 枣强县| 大石桥市| 汽车| 潮州市| 荆州市| 疏附县| 陵水| 巴南区| 观塘区| 抚顺县| 临城县| 庆云县| 佛教| 大厂| 龙南县| 海伦市| 临泽县| 北碚区| 怀柔区| 尚志市| 天全县| 九台市| 高唐县| 泾源县| 齐齐哈尔市| 乌审旗| 安塞县| 潜山县| 乌鲁木齐县| 阿克| 利津县| 南皮县| 松原市| 广丰县| 安西县| 巴青县| 玉屏|