(十五)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下变量设定的规则

  1. 变量与变量内容以等号=来连结,等号两边不能直接接空格符
  2. 变量名称只能是英文字母与数字,但是数字不能是开头
  3. 若有空格符,可以使用双引号“或单引号‘来将变量内容结合起来
  4. 可以使用转义字符\来将一些特殊的符号(*?<>@#$等)转变成一般符号
  5. 若该变量为扩张变量内容时,则需以双引号和$变量名称,比如:PAEH=”$PATH“:/home继续累加变量内容
  6. 若该变量需要在其他子程序中使用,可以使用export将变量变成环境变量
  7. 取消变量的方法: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 ~]# 

 思维导图:

  

posted @ 2015-11-25 16:52  花花妹子。  阅读(177)  评论(0)    收藏  举报