(十五)Shell的变量功能
export:将用户自定义的变量变成环境变量
1 [root@localhost ~]# name="caiminfang" //定义变量 2 [root@localhost ~]# echo $name 3 caiminfang 4 [root@localhost ~]# bash //进入子shell 5 [root@localhost ~]# echo $name //输出的值为空是因为现在的name还不是环境变量,不能取到父shell的值 6 7 [root@localhost ~]# exit 8 exit 9 [root@localhost ~]# export name //将name变成环境变量 10 [root@localhost ~]# bash 11 [root@localhost ~]# echo $name //当进入子shell时,子shell将父shell的系统环境变量读入到子shell的内存中 12 caiminfang
bash下变量设定的规则
- 变量与变量内容以等号=来连结,等号两边不能直接接空格符
- 变量名称只能是英文字母与数字,但是数字不能是开头
- 若有空格符,可以使用双引号“或单引号‘来将变量内容结合起来
- 可以使用转义字符\来将一些特殊的符号(*?<>@#$等)转变成一般符号
- 若该变量为扩张变量内容时,则需以双引号和$变量名称,比如:PAEH=”$PATH“:/home继续累加变量内容
- 若该变量需要在其他子程序中使用,可以使用export将变量变成环境变量
- 取消变量的方法:unset 变量名称
1 [root@localhost ~]# name= my //1 2 bash: my: command not found 3 [root@localhost ~]# name=my 4 [root@localhost ~]# echo $name 5 my 6 [root@localhost ~]# 1name=my //2 7 bash: 1name=my: command not found 8 [root@localhost ~]# name="cai min fang" //3 9 [root@localhost ~]# echo $name 10 cai min fang 11 [root@localhost ~]# name='huahua' 12 [root@localhost ~]# echo $name 13 huahua 14 [root@localhost ~]# name=cai\ min\ fang // 4 15 [root@localhost ~]# echo $name 16 cai min fang
[root@localhost ~]# echo $PATH //5
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# PATH="$PATH":/home/test1
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/home/test1
locale:语系文件的变量
locale-a:显示系统支持的所有语系
改变系统支持的语系,可修改 /etc/sysconfig/i18n
1.查看本机的语系是什么
1 [root@localhost ~]# locale //查看本机的语系是什么 2 LANG=zh_CN.UTF-8 3 LC_CTYPE="zh_CN.UTF-8" 4 LC_NUMERIC="zh_CN.UTF-8" 5 LC_TIME="zh_CN.UTF-8" 6 LC_COLLATE="zh_CN.UTF-8" 7 LC_MONETARY="zh_CN.UTF-8" 8 LC_MESSAGES="zh_CN.UTF-8" 9 LC_PAPER="zh_CN.UTF-8" 10 LC_NAME="zh_CN.UTF-8" 11 LC_ADDRESS="zh_CN.UTF-8" 12 LC_TELEPHONE="zh_CN.UTF-8" 13 LC_MEASUREMENT="zh_CN.UTF-8" 14 LC_IDENTIFICATION="zh_CN.UTF-8" 15 LC_ALL= 16 [root@localhost ~]#
2.locale -a,查看系统支持的所有语系
3.修改LANG的值(你需要的语系)
1 [root@localhost ~]# LANG=en_US.utf8 //将语系修改为美式英语
4.查看本机的语系
1 [root@localhost ~]# locale //已经变成美式英语 2 LANG=en_US.utf8 3 LC_CTYPE="en_US.utf8" 4 LC_NUMERIC="en_US.utf8" 5 LC_TIME="en_US.utf8" 6 LC_COLLATE="en_US.utf8" 7 LC_MONETARY="en_US.utf8" 8 LC_MESSAGES="en_US.utf8" 9 LC_PAPER="en_US.utf8" 10 LC_NAME="en_US.utf8" 11 LC_ADDRESS="en_US.utf8" 12 LC_TELEPHONE="en_US.utf8" 13 LC_MEASUREMENT="en_US.utf8" 14 LC_IDENTIFICATION="en_US.utf8" 15 LC_ALL= 16 [root@localhost ~]#
变量键盘读取和声明变量
read [-pt] 变量
- -p:后面可以接提示符
- -t:后面可以接秒数,限制等待的时间
1 [root@localhost ~]# read name 2 caimingfang 3 [root@localhost ~]# echo $name 4 caimingfang 5 [root@localhost ~]# read -p "请输入你的名字:" name 6 请输入你的名字:huahua 7 [root@localhost ~]# echo $name 8 huahua 9 [root@localhost ~]# read -t 5 name 10 123 11 [root@localhost ~]# echo $name 12 123 13 [root@localhost ~]# read -p "请输入你的名字:" -t 10 name 14 请输入你的名字:qqqqqqq 15 [root@localhost ~]# echo $name 16 qqqqqqq
declare/typeset [-airx] 变量
- -a:声明的变量为数组
- -i:整数数字(integer)
- -r:变量为只读
- -x:变量变成系统环境变量
- 数组:a[i]
1 [root@localhost ~]# declare -i sum=1+2+3+4+5+6 //声明sum的类型为整数 2 [root@localhost ~]# echo $sum //输出变量的形式1 3 21 4 [root@localhost ~]# bash 5 [root@localhost ~]# echo $sum 6 7 [root@localhost ~]# exit 8 exit 9 [root@localhost ~]# declare -x sum //将sum变成环境变量 10 [root@localhost ~]# bash 11 [root@localhost ~]# echo $sum 12 21 13 [root@localhost ~]# exit 14 exit 15 [root@localhost ~]# echo "$sum" //输出变量的形式2 16 21 17 [root@localhost ~]# echo ${sum} //输出变量的形式3 18 21 19 [root@localhost ~]# a[1]=1 20 [root@localhost ~]# a[2]=2 21 [root@localhost ~]# a[3]=3 22 [root@localhost ~]# echo ${a[1]} 23 1 24 [root@localhost ~]# echo "${a[1]}" 25 1 26 [root@localhost ~]# a=("1" "2") 27 [root@localhost ~]# echo ${a[0]} 28 1 29 [root@localhost ~]# echo ${a[1]} 30 2
1 [root@localhost ~]# q[1]="q" 2 [root@localhost ~]# q[2]="w" 3 [root@localhost ~]# q[3]="e" 4 [root@localhost ~]# echo "${q[1]},${q[2]},${q[3]}" //注意:双引号打在外面 5 q,w,e 6 [root@localhost ~]#
思维导图:



浙公网安备 33010602011771号