灵魂拷问:shell语言的作用是什么?

经常有小伙伴学习shell后都会疑问,shell语言的作用是什么?它能实现的功能貌似其它编程语言都能实现。

其实准确的说shell的定位属于操作系统,操作系统分为内核(kernel)和外壳(shell)。所以我们不应该拿shell跟其它编程语言来对比。操作系统的作用是什么呢?是管理计算机硬件与软件资源的计算机程序。那么shell的作用也是如此,即是管理计算机硬件与软件资源。

Shell就是命令行工具的胶水,没有任何语言能像Shell一样方便地将一大堆命令行工具组合起来。原则上来说,Shell做什么都可以,但显然它最适合的是自动化,因为只需要将你原来手动敲的命令都复制到一个文件里面就行了。Shell跟标准的编程语言区别很大,它基本上是一个面向字符串的编程语言,组合用好awk/sed/grep,偶尔配合eval,有时候会发挥奇效,但也有可能原地爆炸。可以跟Python之类的其他语言配合起来,比如某个复杂的功能使用一个Python脚本来实现,然后在shell中调用这个脚本实现较复杂的功能;或者反过来,在Python脚本中调用外部的Shell脚本来提高自动化的效率,也是可以的。

0

发表评论

邮箱地址不会被公开。