**1:什么是shell脚本
Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。
1
二:Shell脚本的规则
Shell 和python都是弱语言
1:变量的规则
定义变量规则:变量名=值
shell定义变量的规则:
1:等号两边不能有空格
2:定义特殊的变量需要用单引号或者双引号结合
3:定义linux命令需要用反单引号
区分单引号和双引号的不同和相同点
2:脚本的命名格式
脚本名称使用.sh结尾
3:脚本的起始行格式
第一行必须写# !/bin/bash
4:脚本输入输出格式
1:输入语句用:read
2:Shell输出值:echo
变
量
名
5
:
脚
本
的
调
用
方
式
1
:
.
/
脚
本
名
.
s
h
(
权
限
的
问
题
)
方
式
2
:
s
h
脚
本
名
.
s
h
注
意
点
:
r
e
a
d
可
以
传
递
多
个
数
据
,
超
过
的
部
分
都
填
充
在
最
后
一
个
变
量
上
7
:
比
较
运
算
符
和
逻
辑
运
算
符
(
1
)
比
较
运
算
符
(
数
字
)
−
e
q
比
较
是
否
相
等
−
n
e
比
较
不
相
等
−
g
t
比
较
大
于
−
g
e
比
较
大
于
等
于
−
l
t
比
较
小
于
−
l
e
比
较
小
于
等
于
(
2
)
比
较
运
算
符
(
字
符
串
)
=
=
比
较
是
否
相
等
!
=
比
较
不
相
等
加
一
操
作
:
(
(
i
+
+
)
)
(
(
i
+
=
1
)
)
加
n
操
作
:
s
=
(
(
(
(
(
(
s
+
i
)
)
s
=
i
)
)
s
=
i
)
)
s
=
[
s
+
s
+
s
+
i
]
(
(
s
=
s
+
s
+
s
+
i
)
)
(
3
)
逻
辑
运
算
符
−
a
逻
辑
与
−
o
逻
辑
或
!
逻
辑
非
8
:
i
f
语
句
格
式
:
i
f
[
条
件
]
t
h
e
n
语
句
e
l
s
e
语
句
f
i
注
意
点
:
1
:
i
f
后
面
有
空
格
,
2
:
条
件
两
边
有
空
格
,
3
:
i
f
条
件
里
面
存
在
变
量
,
需
要
变量名 5: 脚本的调用 方式1:./脚本名.sh(权限的问题) 方式2: sh 脚本名.sh 注意点:read可以传递多个数据,超过的部分都填充在最后一个变量上 7:比较运算符和逻辑运算符 (1)比较运算符(数字) -eq 比较是否相等 -ne 比较不相等 -gt 比较大于 -ge 比较大于等于 -lt 比较小于 -le 比较小于等于 (2)比较运算符(字符串) == 比较是否相等 != 比较不相等 加一操作:((i++)) ((i+=1)) 加n操作: s=( ( ((((s+i ) ) s = i)) s=i))s=[s + s+s+i] ((s=s + s+s+i)) (3)逻辑运算符 -a 逻辑与 -o逻辑或 !逻辑非 8:if语句 格式: if [ 条件 ] then 语句 else 语句 fi 注意点: 1: if后面有空格, 2:条件两边有空格, 3:if条件里面存在变量,需要
变量名5:脚本的调用方式1:./脚本名.sh(权限的问题)方式2:sh脚本名.sh注意点:read可以传递多个数据,超过的部分都填充在最后一个变量上7:比较运算符和逻辑运算符(1)比较运算符(数字)−eq比较是否相等−ne比较不相等−gt比较大于−ge比较大于等于−lt比较小于−le比较小于等于(2)比较运算符(字符串)==比较是否相等!=比较不相等加一操作:((i++))((i+=1))加n操作:s=((((((s+i))s=i))s=i))s=[s+s+s+i]((s=s+s+s+i))(3)逻辑运算符−a逻辑与−o逻辑或!逻辑非8:if语句格式:if[条件]then语句else语句fi注意点:1:if后面有空格,2:条件两边有空格,3:if条件里面存在变量,需要,而且变量两边需要双引号, 4:fi是结束标识
练习:判断用户输入的用户名(name)和密码(password)是否为admin 和 123456,如果是则提示登录成功(success),否则提示失败(fail)
在这里插入图片描述
if [ 条件 ]
then
语句
elif [ 条件 ]
then
语句
…
else
语句
fi
练习:输入学生的成绩,80<score<=100提示very good,60<score<=80提示good,其他则提示不及格
在这里插入图片描述
在这里插入图片描述
9:case规则
格式:
case
变
量
名
i
n
“
值
”
)
语
句
;
;
“
值
”
)
语
句
;
;
…
e
s
a
c
注
意
:
1
:
c
a
s
e
这
第
一
行
以
i
n
结
尾
2
:
值
可
以
是
字
符
串
也
可
以
是
数
字
,
如
果
数
字
范
围
[
0
−
9
]
3
:
结
束
语
句
;
;
4
:
e
s
a
c
结
束
标
志
练
习
:
输
入
一
个
序
号
,
判
断
该
用
户
选
择
哪
款
产
品
,
A
:
笔
记
本
B
:
手
机
C
:
小
台
灯
在
这
里
插
入
图
片
描
述
在
这
里
插
入
图
片
描
述
练
习
:
请
输
入
对
客
服
的
满
意
度
,
【
0
−
3
】
不
满
意
,
【
4
−
6
】
满
意
,
【
7
−
9
】
非
常
满
意
在
这
里
插
入
图
片
描
述
在
这
里
插
入
图
片
描
述
10
:
F
o
r
循
环
格
式
:
f
o
r
变
量
i
n
列
表
d
o
语
句
d
o
n
e
∗
∗
加
粗
样
式
∗
∗
注
意
1
:
结
束
标
志
d
o
n
e
在
这
里
插
入
图
片
描
述
在
这
里
插
入
图
片
描
述
11
:
W
h
i
l
e
循
环
w
h
i
l
e
[
条
件
]
d
o
语
句
d
o
n
e
注
意
:
1
:
w
h
i
l
e
后
面
有
空
格
,
2
:
条
件
两
边
有
空
格
,
3
:
w
h
i
l
e
条
件
里
面
存
在
变
量
,
需
要
变量名 in “值”) 语句;; “值”) 语句;; … esac 注意:1:case这第一行以in结尾 2:值可以是字符串也可以是数字, 如果数字范围[0-9] 3:结束语句;; 4:esac结束标志 练习:输入一个序号,判断该用户选择哪款产品,A:笔记本 B:手机 C:小台灯 在这里插入图片描述 在这里插入图片描述 练习:请输入对客服的满意度,【0-3】不满意,【4-6】满意,【7-9】非常满意 在这里插入图片描述 在这里插入图片描述 10:For循环 格式: for 变量 in 列表 do 语句 done **加粗样式** 注意1: 结束标志done 在这里插入图片描述 在这里插入图片描述 11:While循环 while [ 条件 ] do 语句 done 注意: 1: while后面有空格, 2:条件两边有空格, 3:while条件里面存在变量,需要
变量名in“值”)语句;;“值”)语句;;…esac注意:1:case这第一行以in结尾2:值可以是字符串也可以是数字,如果数字范围[0−9]3:结束语句;;4:esac结束标志练习:输入一个序号,判断该用户选择哪款产品,A:笔记本B:手机C:小台灯在这里插入图片描述在这里插入图片描述练习:请输入对客服的满意度,【0−3】不满意,【4−6】满意,【7−9】非常满意在这里插入图片描述在这里插入图片描述10:For循环格式:for变量in列表do语句done∗∗加粗样式∗∗注意1:结束标志done在这里插入图片描述在这里插入图片描述11:While循环while[条件]do语句done注意:1:while后面有空格,2:条件两边有空格,3:while条件里面存在变量,需要,而且变量两边需要双引号, 4:done是结束标识
练习:求1-100之间的和
在这里插入图片描述
在这里插入图片描述
三:Shell脚本的函数
1:定义格式
函数名(){代码 }
调用格式
函数名
注意点:必须先定义一个函数,然后再调用它
在这里插入图片描述
在这里插入图片描述
2:函数中的参数
使用
n
来
接
收
数
据
练
习
:
输
入
1
,
100
两
个
整
数
进
行
求
和
运
算
,
并
打
印
结
果
在
这
里
插
入
图
片
描
述
在
这
里
插
入
图
片
描
述
在
这
里
插
入
图
片
描
述
在
这
里
插
入
图
片
描
述
练
习
:
输
入
任
意
两
个
整
数
进
行
求
和
运
算
,
并
打
印
结
果
在
这
里
插
入
图
片
描
述
在
这
里
插
入
图
片
描
述
3
:
函
数
中
的
返
回
值
S
h
e
l
l
中
函
数
中
默
认
存
在
返
回
值
查
看
函
数
的
返
回
值
n来接收数据 练习:输入1,100两个整数进行求和运算,并打印结果 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 练习:输入任意两个整数进行求和运算,并打印结果 在这里插入图片描述 在这里插入图片描述 3:函数中的返回值 Shell中函数中默认存在返回值 查看函数的返回值
n来接收数据练习:输入1,100两个整数进行求和运算,并打印结果在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述练习:输入任意两个整数进行求和运算,并打印结果在这里插入图片描述在这里插入图片描述3:函数中的返回值Shell中函数中默认存在返回值查看函数的返回值?
在这里插入图片描述
在这里插入图片描述**