shell指令可以直接在终端输入吗_shell不是LInux系统的壳吗?咋还能脚本编程了?...

a2fada3d4e81f4fdbf855eac0042d02b.png

小豆丁:老张!老张!你快来!

老张:咋啦?火烧屁股啦?急急忙忙的!

小豆丁:啥火烧屁股啊,我是遇到问题了!

老张:也对,你只有遇到问题的时候才会找我!说吧,啥事?

小豆丁:老张啊,你不是刚给我讲完Linux系统的shell是什么意思嘛(详见《贝壳?龟壳?手机壳?究竟啥是Linux系统的壳?》),今天我有看到个词,叫做“shell脚本编程”,这又是啥意思啊?shell不是Linux系统的壳吗,怎么还能编程了?

老张:哦,这个问题啊,也好理解。

老张:在解释这个问题之前,我先问问你,shell大致的工作过程还记得吗?

小豆丁:记得啊,用户输入相关的指令给shell,shell经过处理后再给系统内核,起到过滤和保护的作用。

老张:能理解这个问题就好说了,其实shell脚本编程并不难理解。shell的本质是什么?之前跟你说过是用户和内核交互的一种媒介,实际上更确切的说应该是一种解释器。

小豆丁:解释器?什么意思啊?

老张:就是把用户输入的命令进行解释,然后在送入系统内核。当然,shell的功能不仅仅局限于对用户命令的解释,它还能做一些更复杂的事情。比如说我们可以把很多我们希望执行的操作用shell的相关语法规则写成一个文件,然后shell解释器对文件中的内容一边解释一遍向系统内核传入,系统内核收到后进行执行,直到文件中所有的内容解释执行完毕。

小豆丁:哇哦,shell还有这个功能啊。那么所谓的“shell脚本编程”,是不是就是我们用shell的相关语法要求写成文件的过程啊?

老张:小豆丁越来越聪明了啊!

小豆丁:原来程序还能这么写啊!好神奇!

小豆丁:老张啊,那shell脚本编程和我现在学的C语言程序编程有什么区别啊?

老张:写完的shell脚本文件,是不要编译器编译的,它直接由解释器进行解释然后传递给系统内核执行,你写好的脚本文件,只要给它个可执行权限就能运行了。而C语言程序是要经过编译器编译的,最终生成二进制的可执行程序,然后才能执行。

老张:另外一个区别就是执行速度上的区别了,脚本文件需要一边解释翻译一边执行,所以它的执行速度是远远没有C语言程序快的!

小豆丁:哦,我懂了,原来shell这么强大啊!又学到了新知识!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值