三、Shell 程序设计语言
1、Shell 也是一种脚本语言
- 任何代码最终都要被“翻译”成二进制的形式才能在计算机中执行。
- 有的编程语言,如 C/C++、Pascal、Go语言、汇编等,必须在程序运行之前将所有代码都翻译成二进制形式,也就是生成可执行文件,用户拿到的是最终生成的可执行文件,看不到源码。这个过程叫做编译(Compile),这样的编程语言叫做编译型语言,完成编译过程的软件叫做编译器(Compiler)。
- 有的编程语言,如 Shell、JavaScript、Python、PHP等,需要一边执行一边翻译,不会生成任何可执行文件,用户必须拿到源码才能运行程序。程序运行后会即时翻译,翻译完一部分执行一部分,不用等到所有代码都翻译完。这个过程叫做解释,这样的编程语言叫做解释型语言或者脚本语言(Script),完成解释过程的软件叫做解释器。
- 编译型语言的优点是执行速度快、对硬件要求低、保密性好,适合开发操作系统、大型应用程序、数据库等。
- 脚本语言的优点是使用灵活、部署容易、跨平台性好,非常适合 Web 开发以及小工具的制作。
- Shell 就是一种脚本语言,我们编写完源码后不用编译,直接运行源码即可。
2、用途
- shell脚本的优势在于处理操作系统底层的业务 (linux系统内部的应用都是shell脚本完成)因为有大量的linux系统命令为它做支撑。2000多个命令都是shell脚本编程的有力支撑,特别是grep、awk、sed等。例如:一键软件安装、优化、监控报警脚本,常规的业务应用,shell开发更简单快速,符合运维的简单、易用、高效原则。
- PHP、Python优势在于开发运维工具以及web界面的管理工具,web业务的开发等。处理一键软件安装、优化,报警脚本。常规业务的应用等php/python也是能够做到的。但是开发效率和复杂比用shell就差很多了。
四、如何学好shell
1、熟练掌握shell编程基础知识
- 熟练使用vi(vim)编辑器
- 熟练掌握Linux基本命令
- 熟练掌握文本三剑客工具(grep、sed、awk)
- 熟悉常用服务器部署、优化、日志及排错
2、建议
- 掌握Shell脚本基本语法
- 形成自己的脚本开发风格
- 从简单做起,简单判断,简单循环
- 多模仿,多参考资料练习,多思考
- 学会分析问题,逐渐形成编程思维
- 编程变量名字要规范,采用驼峰语法表示
- 不要拿来主义,特别是新手
五、Shell脚本的基本元素
1、基本元素构成:
- 第1行的“#!/bin/bash”
- 注释:说明某些代码的功能
- 可执行语句:实现程序的功能
2、Shell脚本中的注释和风格
- 作用:通过在代码中增加注释可以提高程序的可读性
- 传统的Shell只支持单行注释,其表示方法是一个井号“#”,从该符号开始一直到行尾都属于注释的内容,如:
#comment1
#comment2
#comment3
...
- 多行注释:使用冒号“:”配合here document,语法如下:
:<<'xxxx'
comment1
comment2
comment3
……
xxxx
xxxx 可以是字符或数字,单引号可以不加,但以防出现莫名其妙的意外发生,比如发生字符扩展,命令替换