X皮書之shell熱身

來源:互聯網
上載者:User
 序   最近想看看shell方面的內容,看到有一篇介紹shell的文檔,不錯。遂按照自己的方式整理如下,與大家分享。 介紹   如果你想適當精通一些系統管理知識,那麼掌握shell指令碼應該是最基本的。即使你可能並不打算真正的編寫一些指令碼。       曾經有人問我,你學那麼多的程式設計語言,你覺得語言有那麼重要嗎?我現在用下面的話告訴你:
 沒有程式語言是完美的,甚至沒有一個唯一最好的語言,只有對於特定目的,比較合適和不適合的程式語言。—— Herbert Mayer

指令碼不難   學習如何編寫shell指令碼並不是一件很困難的事,因為指令碼可以分為很 小的塊,並且相對於shell特性的操作, 只需要學習很小的一部分就可以了。   文法是簡單並且直觀的,編寫指令碼很像是在命令列上把一些相關命令和工具鏈接起來,並且只有很少的一部分規則需要學習。它可以通過將系統調用,公用程式,工具和編譯過的的二進位程式 粘合在一起來建立應用。   絕大部分指令碼第一次就可以正常的工作,而且即使調試一個長一些的指令碼也是很直觀的。 

 

帶著一個"#!"出發   一個shell指令碼其實就是將一堆系統命令列在一個檔案中。
最基本的用處:在你每次輸入這些特定順序的命令時可以減少敲一些字。
如:清除/home/www/shell/log下的log檔案

                                      

  一個改良的指令碼

現在,讓我們看一下一個真正意義上的指令碼,而且我們可以走的更遠...

 

當然上面的#!也可以被忽略,不過這樣你的指令碼就只能是一些命令的集合,不能夠使用shell內建的指令了。比如變數,如果不能使用變數的話,當然這也就失去了指令碼編程的意義了。

 
注意:  這個例子鼓勵你使用模組化的方式來編寫指令碼,平時也要注意收集一些零碎的代碼,這些零碎的代碼可能用在你將來編寫的指令碼中。——這樣你就可以通過這些程式碼片段來構造一個較大的工程用例。
調用一個指令碼 編寫完指令碼之後,你可以使用sh scriptname,或者bash scriptname來調用它。
不推薦使用sh scriptname,因為這禁用了指令碼從stdin中讀資料的功能。
更方便的方法是讓指令碼具有可執行許可權,然後直接運行指令檔,如./scriptname通過chmod修改指令碼許可權  chmod 555 scriptname或  chmod +rx scriptname  chmod u+rx scriptname 

 

什麼時候不用shell 1、資源密集型的任務,尤其在需要考慮效率時(比如排序,hash等等)2、需要處理大任務的數學操作,尤其是浮點運算、精確運算或者複雜的算術運算(這種情況一般使用C或者C++)3、有跨平台移植技術(一般使用C或Java)4、複雜的應用,在必須使用結構化編程的時候(需要檢查變數的類型檢查、函數原型等等)5、對於影響系統全域性的關鍵任務應用6、對於安全有很高要求的任務,比如你需要一個健壯的系統來防止入侵、破解、惡意破壞等7、項目連串的依賴各個部分組成8、需要大規模的檔案操作9、需要多維陣列的支援10、需要資料結構的支援,比如鏈表11、需要產生或操作圖形化介面GUI12、需要直接作業系統硬體13、需要I/O或socket結構14、需要使用庫或者遺留下來的老代碼的介面15、私人的、閉源的應用(shell指令碼把代碼就放在文字檔中,全世界都能看到) 

 推薦                           
相關文章

聯繫我們

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