shell脚本

Shell编程理论和运用
程序的编程风格和执行模式
过程式:以指令为中心,来进行写程序,数据服务于指令。(bash shell) C
对象式:以数据为中心,考虑先如何组织数据,指令服务于数据。 C# C++ JAVA PYTHON ……
shell程序 (调用二进制程序 解释执行)
程序的执行方式
计算机:二进制指令

编程语言:
低级:汇编语言
高级:
编译:高级语言–>编译器–>目标代码
解释:高级语言–>解释器–>机器代码 shell php ruby python
shell编程的执行模式
顺序执行
循环执行
选择执行
shell编程的结构 bash shell 核心中心就是调用指令(堆命令,严重依赖当前环境)
变量、数组
表达式
语句

shell脚本:文本文件 约定俗成要以.sh为结尾
结构和格式 shebang #!/bin/bash 脚本声明

脚本的概念
将要执行的命令按照顺序保存到一个文本中
给文件相应的权限即可执行
结合控制语句可以完成复杂操作

脚本的应用场景
重复 批量事务处理 自动化运维 定期任务执行 服务器运行监控
脚本结构:脚本声明+注释(解释信息)+可执行语句
结构和格式 shebang #!/bin/bash
在这里插入图片描述

Shell程序的执行和Python程序的执行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
bash -n /path/to/script 检查语法是否错误
在这里插入图片描述

变量、数字赋值规则
变量赋值:=号
变量等于字符串:==
数字的大于小于等于:-eq 等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于

脚本循环控制语句
for while until

1:for循环
for var_Name in 列表; do
循环体(正常执行的执行命令)
语句1
语句2
语句3

done
bash -n 脚本文件 检查脚本文件语法是否错误
seq:遍历元素
在这里插入图片描述

创建10个用户,用户名为user1-user10,并打印出它们的UID
在这里插入图片描述

1加到100的和数
在这里插入图片描述

2:交互式脚本(变量的赋值以交互式来进行)
read -p 交互
在这里插入图片描述

3:条件判断
测试方法:
①:test 条件表达式
②:[ 条件表达式 ] 或者 [[ 条件表达式 ]](注意两边至少有一个空格)
文件或目录测试 格式 [ 操作符 文件或目录 ]

-d:测试是否为目录
-f:测试是否为文件
-e:测试文件是否存在
-r:测试文件是否有读权
在这里插入图片描述

逻辑测试
布尔值 (真 假)
与运算:
真 && 真 = 真(0)
真 && 假 = 假
假 && 真 = 假
假 && 假 = 假
或运算:
真 || 真 = 真(0)
真 || 假 = 真
假 || 真 = 真
假 || 假 = 假
非运算:
!真 = 假
!假 = 真
在这里插入图片描述

4:if语句判断(单分支 双分支 多分支)
if语句
格式
if condition;then
statement1

fi
在这里插入图片描述
if condition;then
分支1;
else
分支2;
fi
在这里插入图片描述
if condition;then
分支1;
elif condition;then
分支2;

else
分支n;
fi
在这里插入图片描述
输入成绩,得出100以内各分段的评语
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5:程序执行状态返回值
bash :每个命令,执行状态都有返回值
成功:0
失败:非0
$?
脚本的状态返回值:脚本执行的最后一条命令:
自定义脚本状态返回值:exit[n]
在这里插入图片描述
6:case语句
格式
case 变量引用 in
条件1)
分支1
;;
条件2)
分支2
;;

*)
默认分支
;;
esac
在这里插入图片描述
[0-5][0-9] 0-59 [6-7][0-9] 60-79
7:Wille循环
格式

while 条件测试;do
循环体
done
while循环:条件测试成功,则循环;失败,则退出
如何退出?
必须有时刻,条件测试不成功
? :条件控制变量

如何让循环退出:在循环体中改变测试条件中用于控制循环次数的变量的值
在这里插入图片描述
用while循环写一个脚本
Ping 10.10.16这个网段的主机,打印出可以ping通的和不能ping通主机的数量,要求10.10.16.50-10.10.16.100这个区间
结果为ping通主机的数量
不能ping通主机的数量
在这里插入图片描述
求100以内的素数/质数
在这里插入图片描述
斐波那契数列
在这里插入图片描述

函数
函数基本讲解
过程式编程:代码重用
模块化编程
结构化编程
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值