Shell脚本------变量

发布时间:2024年01月23日

目录

一、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 ]] 

文章来源:https://blog.csdn.net/rmh0713/article/details/135777889
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。