如何編寫一個簡單的shell腳本.task3用到的腳本

1.背景介紹

Shell本身是一個用C語言編寫的程序,它是用戶使用Linux的橋梁。Shell既是一種命令語言,又是一種程序設計語言。作為命令語言,它交互式地解釋和執(zhí)行用戶輸入的命令;作為程序設計語言,它定義了各種變量和參數,并提供了許多在高級語言中才具有的控制結構,包括循環(huán)和分支。

它雖然不是Linux系統(tǒng)核心的一部分,但它調用了系統(tǒng)核心的大部分功能來執(zhí)行程序、建立文件并以并行的方式協(xié)調各個程序的運行。

因此,對于用戶來說,shell是最重要的實用程序,深入了解和熟練掌握shell的特性極其使用方法,是用好Linux系統(tǒng)的關鍵.


2.知識剖析

Shell是一種腳本語言,就必須有解釋器來執(zhí)行這些腳本

我們常說有多少種Shell,其實說的是Shell腳本解釋器

bash是Linux系統(tǒng)默認使用的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的縮寫,內部命令一共有40個。

Linux使用它作為默認的shell是因為它有諸如以下的特色:

可以使用方向鍵查閱和快速輸入并修改命令。

自動通過查找匹配的方式給出以某字符串開頭的命令。

包含了自身的幫助功能,你只要在提示符下面鍵入help就可以得到相關的幫助。


3.常見問題

如何編寫一個shell(bash)腳本

為什么要編寫shell腳本


4.解決方案

Shell有兩種執(zhí)行命令的方式:

交互式(Interactive):解釋執(zhí)行用戶的命令,用戶輸入一條命令,Shell就解釋執(zhí)行一條。

批處理(Batch):用戶事先寫一個Shell腳本(Script),其中有很多條命令,讓Shell一次把這些命令執(zhí)行完,而不必一條一條地敲命令。

Shell腳本也有變量和流程控制語句,但Shell腳本是解釋執(zhí)行的,不需要編譯,Shell程序從腳本中一行一行讀取并執(zhí)行這些命令,相當于一個用戶把腳本中的命令一行一行敲到Shell提示符下執(zhí)行。

簡單性:Shell是一個高級語言;通過它,你可以簡潔地表達復雜的操作。

可移植性:使用POSIX所定義的功能,可以做到腳本無須修改就可在不同的系統(tǒng)上執(zhí)行。

開發(fā)容易:可以在短時間內完成一個功能強大又好用的腳本。


5.編碼實戰(zhàn)


6.擴展思考

還有哪些腳本解釋器

哪些情況下不適合使用Shell腳本

sh 由Steve Bourne開發(fā),是Bourne Shell的縮寫,各種UNIX系統(tǒng)都配有sh。

ash shell 是由Kenneth Almquist編寫的,Linux中占用系統(tǒng)資源最少的一個小shell,它只包含24個內部命令,因而使用起來很不方便。

csh 是Linux比較大的內核,它由以William Joy為代表的共計47位作者編成,共有52個內部命令。該shell其實是指向/bin/tcsh這樣的一個shell,也就是說,csh其實就是tcsh。

ksh 是Korn shell的縮寫,由Eric Gisin編寫,共有42條內部命令。該shell最大的優(yōu)點是幾乎和商業(yè)發(fā)行版的ksh完全兼容,這樣就可以在不用花錢購買商業(yè)版本的情況下嘗試商業(yè)版本的性能了。

但是,考慮到Shell腳本的命令限制和效率問題,下列情況一般不使用Shell:

1.資源密集型的任務,尤其在需要考慮效率時(比如,排序,hash等等)。

2.需要處理大任務的數學操作,尤其是浮點運算,精確運算,或者復雜的算術運算(這種情況一般使用C++或FORTRAN 來處理)。

3.有跨平臺(操作系統(tǒng))移植需求(一般使用C 或Java)。

4.復雜的應用,在必須使用結構化編程的時候(需要變量的類型檢查,函數原型,等等)。

5.對于影響系統(tǒng)全局性的關鍵任務應用。

6.對于安全有很高要求的任務,比如你需要一個健壯的系統(tǒng)來防止入侵、破解、惡意破壞等等。

7.項目由連串的依賴的各個部分組成。

8.需要大規(guī)模的文件操作。

9.需要多維數組的支持。

10.需要數據結構的支持,比如鏈表或數等數據結構。

11.需要產生或操作圖形化界面 GUI。

12.需要直接操作系統(tǒng)硬件。

13.需要 I/O 或socket 接口。

14.需要使用庫或者遺留下來的老代碼的接口。

15.私人的、閉源的應用(shell 腳本把代碼就放在文本文件中,全世界都能看到)。


7.參考文獻

①百度

②http://www.jb51.net/article/52374.htm



今天的分享就到這里啦,歡迎大家點贊、轉發(fā)、留言、拍磚~

技能樹.IT修真院

“我們相信人人都可以成為一個工程師,現在開始,找個師兄,帶你入門,掌控自己學習的節(jié)奏,學習的路上不再迷茫”。

這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導??靵砼c我一起學習吧~

www.jnshu.com/login/1/14708688

PPT? :https://ptteng.github.io/PPT/PPT-java/java-task2-%E5%A6%82%E4%BD%95%E7%BC%96%E5%86%99%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84shell%E8%84%9A%E6%9C%AC.html#/



如何編寫一個簡單的shell腳本.task3用到的腳本_騰訊視頻
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容