当前位置:网站首页 > Shell脚本编程 > 正文

shell编程基础(shell编程基础知识)



1. shell 脚本语言的基本用法

1.1 shell 脚本的用途
将简单的命令组合完成复杂的工作,自动化执行命令,提高工作效率;
减少手工命令的输入,一定程度上避免人为错误;
将软件或应用的安装及配置实现标准化;
用于实现日常性的,重复性的,非交互式的运维工作,如:文件打包压缩备份,监控系统运行状态并实现告警等;

1.2 shell 脚本基本结构
shell脚本编程:是基于过程式、解释执行的语言
编程语言的基本结构:

 

格式要求:首行shebang机制

1.3 shell脚本创建过程
第一步:使用文本编辑器来创建文本文件
第一行必须包括shell声明序列:#!
示例:
#!/bin/bash
添加注释,注释以#开头
第二步:加执行权限
给予执行权限,在命令行上指定脚本的绝对或相对路径
第三步:运行脚本
直接运行解释器,将脚本作为解释器程序的参数运行

1.4 shell 脚本调试
只检测脚本中的语法错误,但无法检查出命令错误,但不真正执行脚本:

调试并执行:

脚本错误常见的有三种

 

2.1 变量
变量表示命名的内存空间,将数据放在内存空间中,通过变量名引用,获取数据

2.1.1 变量类型

 

变量数据类型:

 

2.1.2 Shell中变量命名法则
2.1.2.1 命名要求
区分大小写
不能使程序中的保留字和内置变量:如:if, for
只能使用数字、字母及下划线,且不能以数字开头,注意:不支持短横线 “ - ”,和主机名相反

2.1.2.2 命名习惯
见名知义,用英文单词命名,并体现出实际作用,不要用简写,如:ATM
变量名大写
局部变量小写
函数名小写

 

2.1.3 变量定义和引用
变量的生效范围等标准划分变量类型:

 

变量赋值:name='value'
value 可以是以下多种形式:

 

注意:变量赋值是临时生效,当退出终端后,变量会自动删除,无法持久保存,脚本中的变量会随着脚
本结束,也会自动删除
变量引用:

 

范例:变量的各种赋值方式和引用


范例:变量引用

范例:变量的间接赋值和引用

范例:变量追加值

范例:利用变量实现动态命令

显示已定义的所有变量:set
删除变量:unset

2.1.4 环境变量
环境变量:

 

变量声明和赋值:
声明并赋值

 

或者分两步实现

 

变量引用:

 

显示所有环境变量:

 

查看指定进程的环境变量

删除变量:

bash内建的环境变量

 

2.1.5 只读变量
只读变量:只能声明定义,但后续不能修改和删除,即常量
声明只读变量:

 

查看只读变量:

 

2.1.6 位置变量
位置变量:在bash shell中内置的变量, 在脚本代码中调用通过命令行传递给脚本的参数。

 

2.1.7 退出状态码变量
当我们浏览网页时,有时会看到下图所显示的数字,表示网页的错误信息,我们称为状态码,在shell脚
本中也有相似的技术表示程序执行的相应状态。

进程执行后,将使用变量 $? 保存状态码的相关数字,不同的值反应成功或失败,$?取值范例 0-255

 

注意:

 

2.1.8 展开命令行
展开命令执行顺序

 

防止扩展

加引号来防止扩展

 

变量扩展

 

2.1.9 脚本安全和 set

$- 变量

 

范例:

set 命令实现脚本安全

 

范例:

范例:

 

2.2 格式化输出 printf
格式

常用格式替换符

说明:

 

常用转义字符

范例:

#.2f 表示保留两位小数

#%-10s 表示宽度10个字符,左对齐

#将十进制的17转换成16进制数

#将十六进制C转换成十进制

2.3 算术运算

注意:bash 只支持整数,不支持小数

乘法符号有些场景中需要转义
实现算术运算:

 

内建的随机数生成器变量:

范例:
#生成 0 - 49 之间随机数

#随机字体颜色

增强型赋值:

格式:
let varOPERvalue

范例:
自加3后自赋值

范例:
自增,自减

范例:

2.4 逻辑运算
true, false

 

范例:

或:| 和1相或结果为1,和0相或结果保留原值,一真则真,全假才假

 

范例:

非:!

 

异或:^
异或的两个值,相同为假,不同为真。两个数字X,Y异或得到结果Z,Z再和任意两者之一X异或,将得出另一个值Y

 

范例:

范例: 变量互换

短路运算
短路与 &&
CMD1 短路与 CMD2

 

短路或 ||
CMD1 短路或 CMD2

到此这篇shell编程基础(shell编程基础知识)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
                            

版权声明


相关文章:

  • shell编程教程(shell编程入门)2025-03-01 14:27:09
  • ssh免密登录执行shell(ssh免密码登录命令)2025-03-01 14:27:09
  • shell编程简单实例(shell编程100例)2025-03-01 14:27:09
  • shell编程学习(shell编程要学多久)2025-03-01 14:27:09
  • shell编程实战(shell编程实例详解)2025-03-01 14:27:09
  • shell编程总结(shell编程100例)2025-03-01 14:27:09
  • shell编程入门(Shell编程入门 网盘)2025-03-01 14:27:09
  • shell编程入门(shell编程实例详解)2025-03-01 14:27:09
  • shell编程学习(shell编程基础)2025-03-01 14:27:09
  • ssh免密失效(ssh免密登录执行shell)2025-03-01 14:27:09
  • 全屏图片