1.变量 以固定名称存放的可能变化的值,可以提高脚本的适应能力,方便脚本执行中重复使用某个值。 定义/赋值变量格式为:变量名=变量值 注意事项:若指定变量已存在,则相当于重新给变量赋值;等号两边无空格;变量名区分大小写;变量名不能以数字开头,不使用关键字和特殊字符。
[root@localhost ~]# X=1 //定义变量X并赋值为1
[root@localhost ~]# X=Centos //变量X重新赋值为Linux
查看/引用变量值格式为:$变量名、echo $变量名、echo ${变量名} 查看变量值:
[root@localhost ~]# echo $X
Centos
引用变量值
[root@localhost ~]# echo $X
Centos
[root@localhost ~]# echo $X6
[root@localhost ~]# echo $X6.5 //小数点起到分隔作用,未定义变量X6无取值
.5
[root@localhost ~]# echo ${X}6.5 //使用{}区分易混淆变量
Centos6.5
取消变量 自定义变量的两种失效方式: --退出定义变量的shell环境,变量会自动失效 --环境内手动取消:unset变量名
[root@localhost ~]# echo $X
Centos
[root@localhost ~]# unset X
[root@localhost ~]# echo $X
2.变量种类 根据使用类型区分: (1)环境变量 Linux中环境变量涉及/etc/profile(针对所有用户)和~/.bash.profile(家目录中,针对当前用户) env命令列出所有环境变量 set命令列出所有变量 (2)位置变量 执行脚本时执行的命令行参数,格式:$n,n为序号,序号为两位数的加括号如${10} $1为第一个位置参数,即脚本后第一个参数
[root@localhost ~]# cat passwd.sh
useradd $1 2> /dev/null
echo 123456 | passwd --stdin $1 &> /dev/null
[root@localhost ~]# id test1
id: test1: no such user
[root@localhost ~]# sh passwd.sh test1
[root@localhost ~]# id test1
uid=1002(test1) gid=1002(test1) groups=1002(test1)
$3为第3个位置参数,即脚本后第3个参数
[root@localhost ~]# cat passwd.sh
useradd $3 2> /dev/null
echo 123456 | passwd --stdin $3 &> /dev/null
[root@localhost ~]# sh passwd.sh test test1 test2
[root@localhost ~]# id test
id: test: no such user
[root@localhost ~]# id test1
id: test1: no such user
[root@localhost ~]# id test2
uid=1002(test2) gid=1002(test2) groups=1002(test2)
(3)预定义变量 可以直接使用,不可以修改赋值