linux之bash变量

linux中的变量创建规则:

    变量与变量内容之间是=号,且=号两边无空格

    变量名称只能是英文字母与数字,开头不能是数字

    变量内容有空格,需要使用双引号和单引号将内容结合起来,如name=“zhang san”

    双引号内的特殊字符有特殊意思,如var=“lang is $LANG”

    单引号内的特殊字符无任何意思,原输出var1='lang is $LANG'

    可使用转义字符\将特殊字符转为一般字符

    若变量的值是一个命令的结果,需要使用`命令`(反引号),或者使用$(命令)

    若变量的值扩充时,使用"$变量名"或${变量名}

    在编写shell脚本时,需要使用export 将变量变为环境变量

    取消变量使用unset

    取变量的值使用echo $变量

实例:

[root@www ~]# name="zhang san"        #创建变量并赋值
[root@www ~]# 1name='lisi'            #不可以创建数字开头的变量名
-bash: 1name=lisi: command not found
[root@www ~]# var="lang is $LANG"        #双引号中的$取变量的值
[root@www ~]# echo $var
lang is en
[root@www ~]# var1='lang is $LANG'        #单引号中的$原样输出
[root@www ~]# echo $var1
lang is $LANG
[root@www ~]# version=$(uname -r)        #变量值是命令的结果,使用$()
You have mail in /var/spool/mail/root
[root@www ~]# echo $version
2.6.32-431.el6.x86_64
[root@www ~]# version=`uname -r`            #变量值是命令的结果,使用``
[root@www ~]# echo $version
2.6.32-431.el6.x86_64
[root@www ~]# name=zhang\'sname            #\转义
[root@www ~]#
[root@www ~]# cd /lib/modules/`uname -r`/kernel  #使用`uname -r`
[root@www kernel]# pwd
/lib/modules/2.6.32-431.el6.x86_64/kernel
[root@www kernel]#

环境变量:

环境变量的作用:家目录的变化,提示字符的显示,执行文件搜寻的路径,邮箱的替换等

环境变量的显示:env和export

[root@www ~]# env
HOSTNAME=www
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
…………
[root@www ~]# export
declare -x CLASS_PATH=".:/usr/local/cine/java/jdk1.8.0_161/lib/dt.jar:/usr/local/cine/java/jdk1.8.0_161/lib/tools.jar:/usr/local/cine/java/jdk1.8.0_161/jre/lib"
…………

使用set可查看自定义变量和环境变量

介绍几个特殊变量:

[root@www ~]# echo $$     #    $表示当前shell的PID
30150
[root@www ~]# echo $?     #    $?表示上一个命令的返回值,0表示正确。其他错误。重要!!!
0
[root@www ~]#

export命令将自定义的变量转为环境变量

自定义变量和环境变量差别:是否可以被子程序继续引用;


猜你喜欢

转载自blog.51cto.com/12107790/2175998
今日推荐