shell脚本 编程 变量 基本入门(详解)

简介: shell脚本 编程 变量 基本入门(详解)

1.变量的定义

变量是由变量名和变量值组成,两者之间用符号(=)连接。


变量命名规则:


变量名只能包含字母(a-z,A-Z)、数字(0-9)和下划线(_)。


变量名不能以数字开头。


避免使用Shell保留关键字,如if、while等。(命名时希望大家用实际意义上的作用来命名。)

#定义一个变量
name="zhangsan"
 
#定义一个数字变量
age=2
 
 
#定义一个日期变量
date="2024-3-1 15:18:58"

2.变量的引用

使用$符号来引用变量的值

# 输出变量值
echo $name
# 输出结果:zhangsan
 
echo $age
# 输出结果:2
 
echo $date
# 输出结果:2024-3-1 15:18:58

3.变量的类型

1.字符串变量:存储文本数据

2.数字变量:存储数字数据

3.数组变量:存储多个值

4.环境变量:在所有Shell中都可以使用的变量

5.位置参数变量:脚本或函数中,可以通过 $1, $2, ... 等方式引用传递给脚本或函数的参数。$0 表示脚本的名称,$# 表示传递给脚本或函数的参数个数,$@ 表示所有参数的列表。

4.变量赋值

# 直接赋值
name="hello"
 
# 命令输出赋值
age=`date +%Y`
 
# 变量替换
today=`date +%Y-%m-%d`
echo "今天是 $today"
# 输出结果:今天是 2024-03-01

5.变量的运算

Shell支持对变量进行简单的数学运算,例如加减乘除等。

基本运算符
运算符 含义
+ 加法
- 减法
* 乘法
/ 除法
% 取余

#声明变量
[root@localhost ~] num1=10
[root@localhost ~] num2=20
 
#加法
[root@localhost ~] sum=$((num1+num2))
[root@localhost ~] echo $sum
30
#减法
[root@localhost ~] jian=$((num2-num1))
[root@localhost ~] echo $jian
10
#乘法
[root@localhost ~] cheng=$((num1*num2))
[root@localhost ~] echo $cheng
200
#除法
[root@localhost ~] chu=$((num2/num1))
[root@localhost ~] echo $chu
2
#求余
[root@localhost ~] yu=$((num2%num1))
[root@localhost ~] echo $yu
0
自增自减
运算符 含义
++ 自增
-- 自减

[root@localhost ~] num=10
[root@localhost ~] echo $num
10
[root@localhost ~] ((num++))
[root@localhost ~] echo $num
11
[root@localhost ~] echo $num
11
[root@localhost ~] ((num++))
[root@localhost ~] echo $num
12
[root@localhost ~] ((num--))
[root@localhost ~] echo $num
11
[root@localhost ~] ((num--))
[root@localhost ~] echo $num
10
运算符优先级

Shell运算符的优先级与C语言相同。

# 运算符优先级
num1=10
num2=20
result=$((num1 + num2 * 2))
echo "result = $result"
# 输出结果:result = 50


字符串连接
str1="Hello"
str2="World"
echo "$str1 $str2"
# 输出结果:Hello World
expr 命令

命令用于进行表达式求值字符串操作

[root@localhost ~] num1=10
[root@localhost ~] num2=20
[root@localhost ~] sum=$(expr $num1 + $num2)
[root@localhost ~] echo $sum
30
let 命令

let 命令也用于执行算术运算,并且它允许在表达式中使用变量名而不需要 $ 符号。

let "result = a + b"
 
[root@localhost ~] let "sum= sum +num1"
[root@localhost ~] echo $sum
40
浮点数运算

Shell本身对浮点数运算支持较差,通常需要借助外部工具如bc(计算器)。

[root@localhost ~] sum=$(echo "$a + $b" | bc)
[root@localhost ~] echo $sum
2.8

6.变量的删除

使用unset命令删除变量。

# 删除变量
unset name
echo $name
# 输出结果:空白
 
 
unset age
echo $age
 
# 输出结果:空白

补充知识

获取环境变量

使用env命令获取所有环境变量的列表。

# 获取环境变量
env

设置环境变量

使用export命令将变量导出为环境变量。

# 设置环境变量
export name
相关文章
|
3月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
22天前
|
存储 Unix Shell
确定Shell脚本在操作系统中的具体位置方法。
这对于掌握Linux的文件系统组织结构和路径方面的理解很有帮助,是我们日常工作和学习中都可能使用到的知识。以上讲解详细清晰,应用简便,是每一个想要精通操作系统的计算机爱好者必备的实用技能。
52 17
|
27天前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
103 3
|
27天前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
49 4
|
2月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
138 25
|
3月前
|
关系型数据库 Shell 网络安全
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
|
4月前
|
JavaScript Shell C#
多种脚本批量下载 Docker 镜像:Shell、PowerShell、Node.js 和 C#
本项目提供多种脚本(Shell、PowerShell、Node.js 和 C#)用于批量下载 Docker 镜像。配置文件 `docker-images.txt` 列出需要下载的镜像及其标签。各脚本首先检查 Docker 是否安装,接着读取配置文件并逐行处理,跳过空行和注释行,提取镜像名称和标签,调用 `docker pull` 命令下载镜像,并输出下载结果。使用时需创建配置文件并运行相应脚本。C# 版本需安装 .NET 8 runtime。
236 2
|
Shell 索引
shell脚本入门到实战(四)- 数组
shell脚本入门到实战(四)- 数组
109 0
|
Shell
shell脚本入门到实战(三) - 变量
shell脚本入门到实战(三) - 变量
135 0
|
Shell Linux 人机交互
shell脚本入门到实战(二)--shell输入和格式化输出
shell脚本入门到实战(二)--shell输入和格式化输出
609 0