shell指令可以直接在终端输入吗_shell不是LInux系统的壳吗?咋还能脚本编程了?...
小豆丁:老張!老張!你快來!
老張:咋啦?火燒屁股啦?急急忙忙的!
小豆丁:啥火燒屁股啊,我是遇到問題了!
老張:也對,你只有遇到問題的時候才會找我!說吧,啥事?
小豆丁:老張啊,你不是剛給我講完Linux系統的shell是什么意思嘛(詳見《貝殼?龜殼?手機殼?究竟啥是Linux系統的殼?》),今天我有看到個詞,叫做“shell腳本編程”,這又是啥意思啊?shell不是Linux系統的殼嗎,怎么還能編程了?
老張:哦,這個問題啊,也好理解。
老張:在解釋這個問題之前,我先問問你,shell大致的工作過程還記得嗎?
小豆丁:記得啊,用戶輸入相關的指令給shell,shell經過處理后再給系統內核,起到過濾和保護的作用。
老張:能理解這個問題就好說了,其實shell腳本編程并不難理解。shell的本質是什么?之前跟你說過是用戶和內核交互的一種媒介,實際上更確切的說應該是一種解釋器。
小豆丁:解釋器?什么意思啊?
老張:就是把用戶輸入的命令進行解釋,然后在送入系統內核。當然,shell的功能不僅僅局限于對用戶命令的解釋,它還能做一些更復雜的事情。比如說我們可以把很多我們希望執行的操作用shell的相關語法規則寫成一個文件,然后shell解釋器對文件中的內容一邊解釋一遍向系統內核傳入,系統內核收到后進行執行,直到文件中所有的內容解釋執行完畢。
小豆丁:哇哦,shell還有這個功能啊。那么所謂的“shell腳本編程”,是不是就是我們用shell的相關語法要求寫成文件的過程啊?
老張:小豆丁越來越聰明了啊!
小豆丁:原來程序還能這么寫啊!好神奇!
小豆丁:老張啊,那shell腳本編程和我現在學的C語言程序編程有什么區別啊?
老張:寫完的shell腳本文件,是不要編譯器編譯的,它直接由解釋器進行解釋然后傳遞給系統內核執行,你寫好的腳本文件,只要給它個可執行權限就能運行了。而C語言程序是要經過編譯器編譯的,最終生成二進制的可執行程序,然后才能執行。
老張:另外一個區別就是執行速度上的區別了,腳本文件需要一邊解釋翻譯一邊執行,所以它的執行速度是遠遠沒有C語言程序快的!
小豆丁:哦,我懂了,原來shell這么強大啊!又學到了新知識!
總結
以上是生活随笔為你收集整理的shell指令可以直接在终端输入吗_shell不是LInux系统的壳吗?咋还能脚本编程了?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纵隔子宫可以直接做试管婴儿吗
- 下一篇: 《戒药》第九句是什么