1、为什么要学习Shell编程?
1)Linux系统中会大量的使用Shell,工作中我们也需要自动化实现业务。
例如:自动备份、监控、自动安装服务
2)Shell编程是Linux运维人员必须要回的编程语言(最简单的编程语言)。
3)编程也是运维人员必须具备的本领:
Shell、Puthon是运维人员必须具备的本领。
2、什么是Shell?
Shell就是一个解释器(翻译官),命令行的命令以及脚本都会通过Shell解释,传给操作系统,处理后再输出给用户。
3、Shell的分类
1)Bourne shell
2)C shell:
csh、tcsh
4、C7:默认Shell

5、什么是Shell脚本?
1)将程序、命令放入文件里执行,这个文件称之为Shell脚本文件。
2)工作中最多的就是编程写脚本,存放在文件里。
6、Shell变量:
1)全局变量(环境变量):
a、在整个系统中生效、一般是大写、系统中默认就存在一些这样的变量,用于满足系统和程序运行的需求。
b、系统自带的环境变量:

c、自定义环境变量:(命令行临时生效)
方法一:export OLDBOY="I am oldboy."
方法二:OLDBOY="I am oldboy."
exportOLDBOY

d、环境变量永久生效:
vim /etc/bashrc
放到最后一行
. /etc/bashrc
echo $OLDBOY(输出一个变量内容就加$变量名)
2)局部变量(普通变量):
a、是编写Shell脚本最常用的变量。
b、用法:变量名=值 (例如:a=1)
变量名:数字、字母、下划线、不能是数字开头
=等号:赋值符(把什么东西给谁)
值:东西,变量内容(引用内容的符号:单引号、双引号、反引号、不加引号)



7、表达式
1)[ 表达式 ]中括号表达式:中括号里面两端必须要有空格。
字符串要加双引号:(如果表达式成立,打印1,否则打印0)

[ "a" = "b" ] && echo 1
如果表达式成立,打印1
[ "a" = "b" ] || echo 0
如果表达式成立是假的,打印0
[ ! "a" = "b" ] && echo 1
取反
2)整数表达式:
a、整数表达式符,两端必须要有空格
b、中括号里面两端必须要有空格
c、变量和不比较的内容,不需要加引号
-gt >
-ge >=
-lt <
-le <=
-eq =
-ne 不等于
3)字符表达式:
-z 变量内容长度为0时,为真(表达式正确)。zero
-n 变量内容长度不为0是,为真(表达式正确)。not zero
a == a 字符串是否相同

8、Shell判断句(如果.....那么....)
如果a=10 if [ 表达式 ]
那么 then
echo 1 命令
否则 else
echo 2 命令
果如 fi
示例一、如果a等于10打印1,不等于10打印2

示例二、如果今天是周六就看电影,不是就好好学习

示例三、(实现多条件)如果今天是周6或周日就去看电影打游戏,如果不是就好好上课

8.2 read命令:交互式读取用户输入
-p "提醒:"
-t "多长时间内等待输入"


8.3练习题:Shell编程实现,两个整数比较大小


9、for循环
for n in 取值列表
do
执行命令
done
9.1示例:
示例一、

示例二、显示过程 -x

示例三、
