SHELL脚本中的变量与运算

.SHELL脚本中的变量

1.1.什么是变量

在编写程序时,通常会遇到被操作对象不固定的情况
我们需要用一串固定的字符来表示不固定的值这就是变量存在的根本意义
变量的实现原理就是内存存储单元的一个符号名称

1.2.变量的命名规则

变量的名称中只能包含数字、大小写字母以及下划线
变量的名称只能用大小写字母及下划线开头
同一名称变量在多次被赋值时为覆盖动作
在企业代码规范化中变量的命名规则如下:

1.3.变量的调用方法

1.4.字符的转义及引用

shell 中有很多本身有特殊功能的字符,比如空格井号等等
如果在给变量赋值或执行命令使用时我们只想使用这些符号本身那么就需要用到转义或引用
shell 中反斜杠表示转义,每个反斜杠只能转义一个字符
shell 中单引号表示强引用,我们可以把它看作批量转义,在单引号内的所有字符被视为字符本身
shell 中双引号表示弱引用,其和单引号的区别在于不能引用( ` \ ! $

1.5.变量的类型

从变量的作用范围来划分,变量分为函数级变量,环境级变量,用户级变量和系统级变量
函数级变量只在函数内生效通常用 local来定义。
环境级别变量只在当前运行的 shell 中生效, shell 关闭变量被释放
用户级变量只有登录系统的指定用户,此变量才生效
系统级变量是系统中的永久设定,所有用户都可以使用,系统变量通常被保存到 /etc/profile

1.6.常见的系统及变量

在系统中被预设的变量如下
变量
说明
PATH
命令的搜索路径,以冒号作为分隔符
HOME
用户的家目录的路径,是 cd 命令的默认参数
COLUMNS
命令行编辑模式下可使用命令的长度
HISTFILE
命令历史的文件路径
HISTFILESIZE
命令历史中包含的最大行数
HISTSIZE
history 命令输出的记录数
LOGNAME|USER
当前用户的名字
SHELL
当前使用的 shell
PWD
当前的工作目录
PS1
命令行提示符变量
                 
                   Note
                   PATH 指定命令执行路径是非常有用
                  如果我想在当前用户中可以用相对路径方式调用 /mnt 下的所有可执行文件

1.7.特殊变量定义方式

1.7.1. 用命令的执行结果定义变量
在执行命令时如果想让指定命令优先执行可以使用 $(cmd) ``
1.7.2. 传参变量
很多情况下, shell 脚本需要接受用户的输入,根据用户的输入来执行不同的操作。
从命令行传递给 shell 脚本的参数又称为叫做位置参数, shell 脚本会根据参数的位置使用不同的位数
变量读取他们的值
1.7.3 交互式传参
利用 read 命令可以和脚本执行者进行交互传参
示例:
交互赋值单个变量
交互赋值多个变量
交互赋值数组
交互赋值并显示提示符
隐藏赋值内容
设置超时时间
设置赋值长度
指定录入结束符
1.7.4 数组变量
我们可以定义变量为一组内容,中间的元素用空格隔开
取变量的所有元素
取数组的第一个元素
取数组的最后一个元素
取数组的第 1-3 个元素
查看数组的元素个数
管理数组元素
将第一个元素改为6
删除第二个元素:
删除这个数组;
1.7.5. 变量中字符串的取值管理
示例:
设定实验变量
取所有字符串
统计字符串长度
从指定位置取值到结尾
从指定位置取指定长度的字符
从倒数第 3 个字符向后取 2 个字符
取最后 5 个字符
从开头检索最近匹配字符串并删除
从开头检索最远匹配字符串并删除
从头删除:
从尾删除:
替换字符
1.7.6. 脚本中的函数
变量是一个变化值的别名
函数就是一段程序的别名
 做一个1:20秒的倒计时

1.8.取消变量

unset 变量 即可把变量取消
Note
如果变量被记录到配置文件中需要在配置文件中删除记录

.shell中的运算

2.1.shell中的运算命令

2.2.shell中的数学运算符号

shell 中常用的运算符号如下:

2.3.位运算

2.3.1. 什么是位运算
程序中的所有数在计算机内存中都是以二进制的形式储存的
位运算就是直接对整数在内存中的二进制位进行操作
2.3.2 位逻辑运算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值