文章目录
- 第19章 Shell脚本基础
- 19.1 Shell基本语法
- 19.1.1 什么是Shell
- 19.1.2 编程语言分类
- 1.低级语言
- 2.高级语言
- 19.1.3 什么是Shell脚本
- 19.2 Shell变量及运用
- 19.2.1 Shell变量
- 1.变量的设置规则如下
- 2.按照变量的作用可以分成以下4类
- 3.按照变量的作用域可以把变量分成两类:全局变量和局部变量
- 19.2.3 命令的引用,使用“$()”或反引号
- 19.2.4 命令的嵌套使用,使用“\$(\$())”
- 19.2.5 Shell中单引号和双引号的区别
- 19.2.6 删除变量
- 19.2.7 环境变量
- 19.2.8 设置PATH环境变量
- 19.2.9 Shell位置变量
- 19.2.10 特殊变量
- 19.3 数学运算
- 19.3.1 expr命令
- 19.3.2 使用“$(())”
第19章 Shell脚本基础
19.1 Shell基本语法
19.1.1 什么是Shell
Shell是一个命令解释器,在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户。这种对话方式可以是交互式的,也可以是非交互式的,如图19-1所示。
图19-1 Shell与内核交互
我们所输入的命令计算机是不能识别的,这时就需要一种程序来对命令进行翻译,变成计算机能识别的二进制程序,同时又把计算机生成的结果返回给我们。
19.1.2 编程语言分类
编程语言主要有低级语言和高级语言。
1.低级语言
低级语言分为机器语言和汇编语言。机器语言是二进制语言,仅是0和1这两个数字的排列组合,也是机器唯一能够识别的语言,因此称为机器语言。汇编语言是符号语言,使用助记符来代替操作码,也就是用符号代替机器语言的二进制码。机器语言和汇编语言都是面向机器的语言。
2.高级语言
高级语言是比较接近自然语言或者说人类语言的一种编程语言,用人们能够容易理解的方式进行程序编写。高级语言分为静态语言和动态语言。静态语言是编译型语言,如C、C++、Java,该类语言有一个程序开发环境,不需借助额外的二进制程序,可以编写代码,代码编写完成后,需要编译器将其直接转换成二进制后即可独立运行。
编译器可以将人类理解的语言翻译成机器理解的语言。
GCC是一套功能强大、性能优越的编译器,它是GNU计划的代表作品之一。GCC是Linux平台下最常用的编译器。GCC的原名为GNU C Compiler,即GNU C语言编译器,随着GCC支持的语言越来越多,它的名称也逐渐变成了GNU Compiler Collection。
动态语言是解释型语言,如PHP、Shell、Python、Perl。动态语言在某个代码编写完成以后,不需转换成二进制格式,而是借助解释器在代码执行当中解释转换(边解释,边执行)。
19.1.3 什么是Shell脚本
一般脚本的命名都是以.sh
结尾的,实际上,Linux系统不以扩展名识别文件类型,但为了统一标准,尽量使用.sh结尾。
!/bin/bash
的作用是告诉脚本使用的是哪种Shell作为命令解释器。如果不指定Shell,则以当前Shell作为执行的Shell。
在Shell中以“#”开头,表示整行被当作一个注释,执行时被忽略。
(2)创建Shell程序的步骤如下。
① 创建一个包含命令和控制结构的文件。② 修改这个文件的权限使它可以执行,使用chmod +x test.sh
。③ 检测语法错误。④ 执行./test.sh
。
(3)Shell脚本的执行通常有以下几种方式。
① /root/test.sh
(使用绝对路径执行脚本)或者 ./test.sh
(当前路径下执行脚本的话,要有执行权限 chmod +x test.sh)。
② bash test.sh