第一部分:Linux Shell 简介
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
当一个用户登陆linux 系统后,系统就会为该用户创建一个shell程序。
Shell的版本:
- Bourne Shell:是贝尔实验室开发的,unix普遍使用的shell,在编程方面比较优秀,但在用户交互方面没有其他shell优秀。
- BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,在bourne shell基础上增强了很多特性,如命令补全,命令历史表等等
- Korn Shell:是对Bourne Shell 的发展,在大部分内容上与Bourne Shell兼容,集成了C Shell和Bourne shell优点。
- C Shell:是SUN公司Shell的BSD版本,语法与c语言相似,比bourne shell 更适合编程
第二部分:shell编程的基本流程
1、用vim创建一个后缀为.sh的文件
注:脚本文件的后缀,即使不是.sh也是可以正常执行的。
2、在.sh文件中写入内容
第一行固定写法:
#!/bin/bash #用来指定bash解释器
第二行脚本正文内容:以#开头的是注释行
3、给脚本进行赋权
chmod +x 脚本
4、执行脚本
./脚本
注:当然我们也可以跳过第三步直接执行脚本
bash 脚本文件
三、shell编程基础语法
1、变量
定义变量:变量名=变量值
注:
1)直接用等号进行定义;
2)等号两侧不能出现空格;
变量名的定义规则
只能是数字、字母、下划线
不能以数字开头
建议变量名见名知意,例:驼峰写法
输出变量值:$变量名
2、数据类型
字符串类型、数值类型、布尔类型【真|假】
3、 输入和输出
输入:read -p "提示信息" 变量名
# 提示信息:给用户看要输入什么内容
输出:echo "要输出的内容 $变量名"
4、 判断基础
[ 判断表达式 ]
# 方括号两侧要留空格,否则会报错
# 返回结果:真:0 假:1
4.1 比较两个数大小的符号
-gt 表示大于(>)-ge 表示大于等于(>=)
-lt 表示小于(<)
-le 表示小于等于(<=)
-eq 表示等于(==)
-ne 表示不等于(!=)
4.2 比较两个字符串是否相同
== 表示字符串相同!= 表示字符串不同
4.3 判断文件
判断文件是否存在:[ -a 文件名 ] 文件存在,返回真;文件不存在,返回假
[ -e 文件名 ] 文件存在,返回真;文件不存在,返回假
判断文件类型:
[ -d 文件名 ] 判断文件是否为目录,如果是目录,返回真;如果不是目录,返回假
[ -f 文件名 ] 判断文件是否为一般文件,如果是一般文件,返回真;如果不是一般文件,返回假
4.5 关于$?
特殊的内置变量
这个变量可以表示离他最近的判断条件的结果
如果结果为真,$?=0
如果结果为假,$? !=0 这个变量中保存的值是非0的