(2)、shell编程之变量

变量:可以变化的量

变量可以由数字、字母、下划线组成,但不可以以数字开头

在shell里变量默认类型都是字符串,如果要进行运算,必须要指定变量类型为数值型;调用变量在变量名前加上$号即可($ 变量名)。

变量赋值用“=”连接,且等号左右两边不能存在空格,如果变量值中有空格需要用单引或者双引号包括

在变量值中,可以使用“\”转义符。

[root@CAT ~]# a=3                 #把3赋值给变量a
[root@CAT ~]# echo $a
3

如果需要增加变量的值,则可以进行变量值叠加,不过变量需要用双引号包括 "$变量名"或${变量名},类似于 ">>" 追加

[root@CAT ~]# a="$a"45
[root@CAT ~]# echo $a
345
或
[root@CAT ~]# a=${a}678
[root@CAT ~]# echo $a
345678

如果要把命令的结果作为变量值赋予变量,则需要只用反引号或$()包括:

[root@CAT ~]# a=$(date) 
[root@CAT ~]# echo $a
2021年 04月 26日 星期一 10:40:50 CST

变量分类:

类型 定义 名称自定义 作用自定义 内容自定义
用户自定义变量 由用户自定义名和值的变量
用户自定义环境变量 主要用来保存和系统环境相关的数据
系统自带环境变量
位置参数变量 主要用来向脚本当中传递参数或数据
预定义变量 在Bash中已经定义好的变量

 

 

 

 

 

 

 

 

用户自定义变量使用规则

赋值 变量名=值
调用 $变量名
查看

set [选项] 

-u:设定此选项后,调用未声明的变量时会报错(默认无提示,仅临时生效)

不加任何选项,将会列出当前系统所有变量

删除 unset 变量名
更改 直接覆盖

 

 

 

 

 

 

 

 

 

环境变量使用规则

定义 export 变量名=值      #定义环境变量时一般使用大写变量名,为了区分,这也是程序员默认熟成的规则
用户自定义环境变量时需要用export声明
调用 $变量名
查看 env 查看所有的环境变量
删除 unset 变量名
更改 直接覆盖

 

 

 

 

 

 

常见的环境变量:

PATH:系统查找命令的路径

PS1:定义命令提示符

LANG:定义Linux系统的主语系环境

 

位置参数变量

变量名 作用
$n

n为数字,$0代表命令本身,$1-$9 代表1-9个参数,10及以上的参数需要用{}包括,eg:${10}

$* 代表命令中所有参数,$*把所有参数看成是一个整体
$@ 代表命令中所有参数,$@把所有参数区分对待
$# 代表命令行中所有参数的个数

 

 

 

 

 

 

 

预定义变量

变量名 作用
$? 捕获最后一次执行命令的返回值,若为0则证明命令执行成功,若为非0数值,则证明命令执行失败
$$ 当前进程的PID
$! 后台运行的最后一个进程的PID

 

 

 

 

 

 

键盘的输入(交互式shell):

# read [选项] [变量名]

选项 意义
-p "提示信息" 等待输入时,输出的提升信息
-t秒数 等待用户输入的时长,超时退出,若不加则一直等待
-n字符数 字符数,read只接受指定的字符数
-s 隐藏输入的数据,用于保密类信息输入
posted @ 2021-04-26 11:37  Brother_Cat  阅读(101)  评论(0编辑  收藏  举报