变量是脚本种的一种重要的属性,它可以存储值,这就大大的增加了脚本的灵活性使得脚本的应用更为广泛。
自定义变量
变量名=值(等号两边不能有空格)
在linux内可以定义变量然后用$
引用如果要在调用后面加字符之类的则可以使用${变量名}字符
环境变量
系统帮你定义好的变量
例如
USER输出本用户的用户名
UID输出本用户的id号
HOME当前用户家目录
SHELL当前用户解释器
PWD当前位置
PS1一级提示符
PS2二级提示符
PATH存储命令路径
删除变量
将自己定义的临时变量删除掉
- unset + 变量名
永久定义变量
在/etc/profile
文件下定义,针对所有用户
/root/.bash_profile
文件下定义针对个人用户
位置变量与与定义变量
脚本在有位置变量后不能直接执行需要在执行命令后面添加参数才可以执行。
[root@XH ~]# vim location.sh
#!/bin/bash
#位置变量
echo $1 #第一个参数
echo $2 #第二个参数
#预定义变量
echo $0 #脚本的名称
echo $* #所有参数
echo $# #所有参数的个数
echo $$ #当前进程的进程号
echo $? #上一个程序的返回状态码
可以检测上一个指令是否成功,成功为0,不成功为非0
[root@XH ~]# chmod +x location.sh #添加可执行权限
使用位置变量实现快速创建用户及其密码
[root@XH ~]# vim /opt/user.sh
#!/bin/bash
useradd $1
echo "$2" |passwd --stdin $1
引号
’‘ “:界定范围,屏蔽某些特殊符号的功能
“” :界定范围
“ `` ”反撇或者$() :将明令的执行输出作为变量
read :以交互式交互式创建自定义变量
例如
#!/bin/bash
read -p please with username: n #提示输入名称
useradd $n
stty -echo
read -p please with passworld: m #提示输入密码
stty echo
echo $m | passwd --stdin $n
stty -echo:屏蔽回显示
stty -echo:不屏蔽显示
发布全局变量
export + 已经定义的变量(类似于python的全局变量)
变量计算
用于做某种计算
expr
或者可以用$[]
或$(())
表达式
[root@XH ~]# X=1234 #定义变量X
[root@XH ~]# expr $X + 78 #加法
1312
[root@XH ~]# expr $X - 78 #减法
1156
[root@XH ~]# expr $X \* 78 #乘法,操作符应添加\转义
96252
[root@XH ~]# expr $X / 78 #除法,仅保留整除结果
15
[root@XH ~]# expr $X % 78 #求模
64
[root@XH ~]# echo $[X+78]
1312
[root@XH ~]# echo $[X*78]
96252
let
计算后会赋值,结果不输出,可以变量自增减
bc
计算器:可以计算小数
bc sclae=
显示小数点后几位 算式