目录
一、shell脚本的变量
1、shell脚本的变量是什么?
2、变量的作用
3、变量作用范围
3.1、临时设置
3.2永久设置,需要在/etc/profile文件里添加
4、删除变量
5、变量基础
6、变量命名要求
7、特殊符号
8、整数运算
9、expr算术表达式
二、特殊变量
1、预定义变量
2、环境变量
3、位置变量
三、test
1、test:测试表达式是否成立 成立则为0 不成立则为1
2、[操作符 条件表达式]
3、整数的数值的比较
举例1、比较两个整数的大小
举例2、查看系统内存是否低于1024m,低于则提示
举例3、查看当前目录下的文件数是否大于10 如果大于,则进行提示
4、字符串比较
举例
5、逻辑测试(短路运算)
一、shell脚本的变量
1、shell脚本的变量是什么?
变量是计算机语言中能储存计算结果或能表示值的抽象概念。保存将来会变化的数据,即使数据变化,直接调用变量即可。
shell变量用来存放系统和用户需要使用的特定参数,而且这些参数可以根据用户的设定或系统环境的变化响应变化。通过使用变量,shell程序能够提供更加灵活的功能,适应性更强。
2、变量的作用
变量是用来存放系统和用户需要使用的特定参数
①变量名:使用固定的名称,由系统预设或用户定义
②变量值:能够根据用户设置,系统环境的变化而变化
3、变量作用范围
默认情况下,新定义的变量只在当前的shell环境中有效,因此被称为局部变量。当进入子程序或新的子shell环境时局部变量将无法在使用。
可以通过内部命令export将指定的变量导出为全局变量,使用用户定义的变量在所有的子shell环境中能够继续使用。
格式:
export 变量名=变量值
3.1、临时设置
3.2永久设置,需要在/etc/profile文件里添加
vim /etc/profile
export PATH+=:/mnt
[root@localhost data]#source /etc/profile
[root@localhost data]#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/data:/mnt
4、删除变量
unset 加变量名
5、变量基础
定义变量:变量名=变量值
调整变量:echo$变量名
取消变量:unset变量名
追加变量:变量名+=追加的内容
export变量 可以让子进程也可以使用变量
6、变量命名要求
1、区分大小写
2、不能使用数值开头
7、特殊符号
①双引号""可以识别变量
②单引号''不能识别变量
③反撇号:命令替换,提取命令执行后的输出结果和$(...)相同
④{}:定义变量名的范围
read -p 从键盘输入的内容变成变量
8、整数运算
运算符号:+-/*\%(取余数)
9、expr算术表达式
let 变量名=变量一运算符号 变量二
echo $变量名
变量名=$[算术表达式]
echo $变量名
(变量名=算术表达式)
echo $[RANDOM] 取随机数 范围是0-32767
echo $[RANDOM%33] 取0-32 的随机数
echo $[RANDOM%33+1] 取1-33的随机数
二、特殊变量
1、预定义变量
$* 返回所有的位置参数,所有参数当作一个整体返回
$@ 返回所有的位置参数,所有参数当作个体返回
$? 表示前一条命令执行的返回状态,返回值为0表示正确,返回任何非0值均表示出现异常
$# 表示命令行中位置参数的总个数
$0 表示当前执行的脚本或程序的名称
$$ 当前bash的进程id
$! 后台任务最后一个id
2、环境变量
env 看到所有的环境变量
$USER 表示用户名称
$HOME 表示用户的家目录
$LANG 表示语言和字符集
$PWD 表示当前所在工作目录
$PATH 表示可执行用户程序的默认路径
3、位置变量
位置变量也称为位置参数,使用$1 $2 $3 ...$9 $0表示当前脚本的文件名称
三、test
1、test:测试表达式是否成立 成立则为0 不成立则为1
test [操作选项] 条件表达式
2、[操作符 条件表达式]
3、整数的数值的比较
格式[整数1 操作符 整数2]
常见的测试操作符号
操作符 | 含义 |
---|---|
-eq | 等于(Equal) |
-ne | 不等于(Not Equal) |
-lt | 小于(Leser Than) |
-gt | 大于(Greater Than) |
-le | 小于或等于(Lesser or Equal) |
-ge | 大于或等于(Greater or Equal) |
举例1、比较两个整数的大小
举例2、查看系统内存是否低于1024m,低于则提示
举例3、查看当前目录下的文件数是否大于10 如果大于,则进行提示
4、字符串比较
格式:
[ "字符串1" = "字符串2" ] #判断是否相等
[ "字符串1" != "字符串2" ] #判断是否不等
[ -z "字符串" ] #判断字符串内容是否为空
[ -n "字符串" ] #判断字符是否存在
举例
5、逻辑测试(短路运算)
- -a或&&:逻辑与,“而且”的意思全真才为真
- -o或||:逻辑或,“或者”的意思一真即为真
- !:逻辑否
[ 表达式1 ] && [ 表达式2 ] 等同于 [ 表达式1 -a 表达式2 ] 等同于 [[ 表达式1 && 表达式2 ]]
[ 表达式1 ] || [ 表达式2 ] 等同于 [ 表达式1 -o 表达式2 ] 等同于 [[ 表达式1 || 表达式2 ]]