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命令将自定义的变量转为环境变量
自定义变量和环境变量差别:是否可以被子程序继续引用;