Linux程式設計讀書筆記:第二章 shell程式設計

來源:互聯網
上載者:User

2.1 什麼是shell


  • 解釋型語言,不適合用來完成對執行時間比較挑剔或者處理器符合比較大的工作

  • shell是一個做為使用者與UNIX系統之間的操作介面的程式,檔案的重新導向只要使用"<"和"》"就行,管道用一個"|"就能代表,子進程的輸出是"$(...)",所有這些的具體細節都早已為使用者準備好了。





2.2 管道和重新導向


2.2.1 對輸出資料進行重新導向


  • $ls -l > lsoutput.txt,這條命令將ls命令的輸出儲存到一個名為lsoutput.txt的檔案裡去

  • $ps >> lsoutput.txt,這條命令將把ps命令的輸出追加到檔案尾部

  • 檔案描述符0代表一個程式標準輸入,檔案描述符1代表一個程式標準輸出,而檔案描述符2代表一個程式標準錯誤輸出





2.2.2 對輸入資料進行重新導向


  • 不僅能重新導向輸出資訊,還可以重新導向輸入資料,如$ more < killout.txt





2.2.3 管道


  • 可以用管道操作符"|"把進程串連在一起,UNIX不同於DOS,用管道串連在一起的進程可以同時運行,並會隨著資料流在它們之間的流動而自動協調





2.3 可以被視為程式設計語言的shell


2.3.1 互動式程式


2.3.2 編寫指令碼程式


  • 程式中的注釋以一個"#"符號開始,一直持續到該行的結束

  • 在shell程式設計裡,exit命令返回"0"表示成功

  • UNIX一般很少通過檔案的副檔名來確定檔案的類型,可以完全省略".sh",或者給它加上一個不同的副檔名,shell是不關心的,要想知道它們是否是指令碼程式,最好的方法就是使用file命令,比如 "file first.sh"





2.3.3 把指令碼設定為可執行程式


  • 用chmod命令對已寫好的指令檔的狀態(mode)進行修改,是這個檔案能夠被全體使用者執行,$ chomd +x first.sh





2.4 shell程式設計的文法


2.4.1 變數


  • 在shell裡,使用變數之前並不需要事先對它們做出聲明。在預設情況下,所有變數都被認為是並儲存為字串,即使它們被賦值為數值時也是如此。shell和其它一些工作程式會把"數值"型字串依次轉換為正確的數值,並且按照正確的方式對它們進行操作。


 

  • 因為UNIX是一個區分字母大小寫系統,shell中依舊如此


 


  • shell裡,在變數名前面加上一個"$"字元就可以獲得它的內容,echo命令就可以輸出它的內容。只要用到變數,我們就可以在它前面加上一個"$"字
    符,除非我們是在對該變數進行賦值操作。注意,如果字串裡包含著空格,就必須用引號把它們括起來,還要注意等號兩邊不能有空格。


 

$salutation=Hello



$echo $salutation



Hello



$salutation="Year Dear"



$echo $salutation



Year Dear



$salutation=7+5



$echo $salutation



7+5


 





2.4.2 條件測試


2.4.3 控制結構


2.4.4 函數


2.4.5 命令


2.4.6 命令的執行


2.4.7 即時文檔


2.4.8 調試指令碼程式


2.5 shell程式設計樣本


2.5.1 工作需求


2.5.2 設計


2.6 本章總結

相關文章

聯繫我們

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