变量的作用
为灵活管理Linux系统提供特定参数,有两层意思:
变量名:使用固定的名称,由系统预设或用户定义
变量值:能够根据用户设置、系统环境的变化而变化
变量的类型
自定义变量:由用户自己定义、修改和使用
环境变量:由系统维护,用于设置工作环境
位置变量:通过命令行给脚本程序传递参数
预定义变量:Bash中内置的一类变量,不能直接修改
变量的使用
格式
基本格式:变量名=变量值
变量名以字母或下划线开头,区分大小写,建议全大写
Product和Version为变量名
把PPT和3.0分别定义为Product和Version变量值
echo $变量名 ##查看变量值
echo $Product ##查看Product的变量值
赋值时可以使用引号,它们将有如下意义:
双引号:允许通过$符号引用其他变量值
NEW=“WORD$Version” ##将引用上面的变量,结果为WORD3.0
单引号:禁止引用其他变量值
CASH=‘US$IS’ ##“$”会被视为普通字符,结果为US$IS
反撇号:命令替换,提取命令执行后的输出结果
EX=`pgrep –U root | wc –l` ##会把命令执行结果赋给EX
从键盘输入内容为变量赋值:
read [-p “提示信息” ] 变量名
read –p “请输入循环次数:” CISHU ##会把键盘输入的内容赋给CISHU
设置变量的作用范围:
export 变量名 ...
export Product Version ##将变量Product和Version导出为全局变量
export AAA=123 ##定义变量AAA并将变量AAA导出为全局变量
整数变量的运算(赋值时必须用反撇号`)
expr $变量1 运算符 $变量2 ...
加法运算:+
AK=`expr $EX + $CISHU` ##AK的变量值为:EX和CISHU的变量值之和
减法运算: -
AK=`expr $EX - $CISHU` ##AK的变量值为:EX的变量值减去CISHU的变量值
乘法运算: \*
AK=`expr $EX \* $CISHU` ##AK的变量值为:EX和CISHU的变量值的乘积
除法运算: /
AK=`expr $EX / $CISHU`
##EX的变量值被除数,CISHU的变量值为除数,AK的变量值为商
求模(取余)运算: %
AK=`expr $EX % $CISHU`
##EX的变量值被除数,CISHU的变量值为除数,AK的变量值为余数
环境变量
变量名="路径"
变量名="变量名:/路径"
PATH=“$PATH:/root” ##将PATH变量值修改为原PATH变量值下的root文件夹
位置变量
表示为 $n,n为1~9之间的数字,超过9则用${n}
使用shell脚本展示,
[root@localhost ~]# cat myprog.sh
echo “字母表第5个字母是:” $5 ##表示查看时引用第5个位置的参数
echo “字母表第18个字母是:” ${18} ##表示查看时引用第18个位置参数
[root@localhost ~]# ./myprog.sh {a..z} ##执行脚本,使用字母表的参数