目录
变量定义
变量即在程序运行过程中它的值是允许改变的量,变量是用一串固定的字符来标示不固定的值的一种方法,
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储 Script 运行时可更改的程序信息,
在 shell 中变量是不能永久保存在系统中的,必须在文件中声明
变量分类
自定义变量:由用户自己定义,修改和使用
环境变量:由系统维护,用于设置工作环境
只读变量:只可以读取不可以更改
位置变量:通过命令行给脚本传递参数
预定义变量:Bash中内置的一类变量,不能修改
用户自定义变量
命名要求
-
区分大小写
-
不能使程序中的保留字和内置变量:如:if, for,hostname
-
只能使用数字、字母及下划线,且不能以数字开头,注意:不支持短横线 “ - ”,和主机名相反
-
不要使用内置的变量,使用英文尽量使用词义通俗易懂,PATH
-
大驼峰StudentFirstName
-
小驼峰studentFirstName
-
下划线: student_name
变量调用
[root@localhost ~]# name=ww;echo $name
ww
变量叠加
[root@localhost ~]# name=${name}:gg;echo $name
ww:gg
变量查看
[root@localhost ~]# set|grep name
name=ww:gg
变量删除
unset 变量名
环境变量
在当前shell和子shell中生效,写入配置文件,对全局生效。
查询环境变量
[root@localhost ~]# env
XDG_SESSION_ID=19
HOSTNAME=localhost.localdomain
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.48.1 61753 22
SSH_TTY=/dev/pts/3
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33
常见环境变量
[root@localhost ~]# echo $PATH #系统查找命令路径
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/python3/bin:/root/bin
[root@localhost ~]# echo $PS1 #迎宾界面
\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\$
[root@localhost ~]# echo $HOSTNAME #主机名
localhost.localdomain
[root@localhost ~]# echo $HISTSIZE #命令历史缓存条数
1000
环境变量改动后,需要重启或者source 配置文件 方能生效。
位置参数变量及预定义变量
位置变量也称为位置参数,使用$1、$2、$3、…、$9 表示
$*:表示所有位置参数的内容看成一个整体返回
$@:表示所有位置参数的内容分割成n份,每份作为一个独立的个体返回
$#:表示命令行中位置参数的个数
$0:表示当前执行的脚本或程序的名称
$?:表示前一条命令执行后的返回状态,返回值为 0 表示执行正确,返回任何非 0 值均表示执行出现异常
$$:显示当前进程号
$!:显示后台运行任务中最后一个pid