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为序号,序号为两位数的加括号如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)预定义变量
可以直接使用,不可以修改赋值