作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
我们前面学习了那么多命令,以及涉及到部分逻辑判断的问题。从简单来说,他就是Shell编程,只有由于命令比较单一,只能实现比较简单的功能。如果我们把多个操作都放到一起去,并添加更复杂的逻辑在里面,他就是Shell编程。所以我们主要从以下几个方面讲解Shell编程:
Shell编程-什么是shell
Shell编程-变量(本章节)
Shell编程-数据类型
Shell编程-逻辑判断
Shell编程-if判断
Shell编程-if和else
Shell编程-while循环
Shell编程-for循环
Shell编程-case
Shell编程-break
Shell编程-continue
Shell编程--函数
Shell编程-案例(一)
Shell编程-案例(二)
Shell编程-小结
我们在讲Linux日常运维=环境变量env的时候就讲过环境变量,那些都是系统自带或者手工注入到的全局或者局部变量,满足的是通用性的要求,我们都可以直接使用,但是我们在写shell脚本的还需要根据自己的需要定义一些变量,只能在shell内部使用。
一、变量的定义和命名规则
命名规范:Shell 变量名由字母、数字和下划线组成,但必须以字母或下划线开头。变量名应该具有描述性,以便能够清晰地表达其代表的数据含义。例如,可以使用 count 表示计数,file_path 表示文件路径等。变量名区分大小写,例如 VAR 和 var 是两个不同的变量。定义方式:可以使用等号(=)来为变量赋值,从而定义一个变量。例如:my_variable="Hello World" 这里定义了一个名为 my_variable 的变量,并将其值设置为 "Hello World"。在赋值时,如果值中包含空格或特殊字符,需要将其用引号(单引号或双引号)括起来。例如:my_path="/usr/local/bin" 如果路径中包含空格,像 my_path="/usr/local/my folder",则必须使用引号将其括起来,以确保 Shell 正确识别。二、变量的引用和替换
引用变量值:如前所述,可以使用 {变量名} 或 变量名 的方式来引用变量的值。例如,如果有一个变量 message="Hello",那么可以使用 echo {message} 和 message在绝大多数情况下效果是一样的,但是在包含特殊符号等复杂的情况下建议使用变量替换:Shell 支持在命令和字符串中进行变量替换,即将变量的值插入到相应的位置。例如,如果有一个变量 file="/path/to/myfile.txt",可以使用 cat 还可以在变量值中包含其他变量的引用,进行嵌套的变量替换。例如,如果有 dir="/path/to" 和 file="myfile.txt",那么可以定义一个新变量 full_path="{dir} 和 {file} 的值被组合起来形成 full_path 的值。三、变量类型
环境变量:这些变量对于当前用户的所有进程都是可见的。它们通常以大写字母命名,例如HOME、PATH、USER等。可以使用export命令将一个普通变量转换为环境变量。本地变量:这些变量仅在当前Shell实例中可见。它们通常用于存储脚本中的临时数据。位置变量:这些变量用于存储脚本的参数。$0:脚本名称。1 - 9:脚本的第一到第九个参数。$#:传递给脚本的参数个数。$*:所有位置参数的单个字符串。$@:所有位置参数的单独引用字符串。特殊变量:$?:最后一条命令的退出状态。$$:当前Shell进程ID(PID)。$!:最后一个后台命令的进程ID。$-:当前Shell的选项。$?:最后命令的退出状态总结
1.为了让变量具有可读性,命名的时候注意规范。
2.简单的变量在引用的时候可直接使用,复杂的变量使用{}。
3.变量统一放在脚本开头部分,更容易识别。
4.这就是真实的脚本,但是只定义了一个变量,后面备份逻辑使用这个变量就可以,这里只是只打印了变量。
代码语言:javascript代码运行次数:0运行复制#!/bin/bash
current_date=$(date +%Y-%m-%d)
echo $current_date