日期:2014-05-16  浏览次数:20763 次

【Linux基础篇】变量和引用以及转义符

shell 变量和引用
变量无类型
变量的赋值与替换

特殊变量:环境变量,位置参数
4种引用符号的意义及用法
转义符

?

变量分类:本地变量、环境变量、位置参数

本地变量,即局部变量,仅在当前shell中有效

环境变量,即系统默认定义的变量,任何shell中都可以直接使用

位置参数,用来向shell脚本传递变量,只读

-----------------------------
给变量赋值
variable=value 或 ${variable=value}
1.等号两边不可以有空格
2.value中包含空格,则必须用双引号括起来
3.变量名以字母(a~z,A~Z),数字(0~9),下划线(_)组成,不能以数字开头

?

使用定义的变量
$variable 或 ${variable}

?

变量赋值中使用另一个变量
var1="hello shell"
var2="go: $var1"
echo $var2
输出:go:hello shell

?

清除变量
unset 变量名

?

重新给变量赋值
variable+value

?

测试变量是否已经赋值
variable?value
variable:?value

?

判断变量是否已经赋值,如果没有,则对其赋值(或临时赋值),否则,使用原值
variable:=value
variable:-value 临时赋值,使用后value清除

?

设置变量的只读属性
variable=value
readonly variable 声明该变量为只读

或者,通过declare和typeset命令设置变量为只读


变量的类型
bash shell 只支持整型和字符型(默认)
shell通过判断值是否全为数字,如果是,则为数值型,否则为字符型
字符型具有默认的整型值:0

declare -i a 声明a为整型,如果a为字符串,则不变;如果将字符串与整型进行运算,则字符串按0处理

declare -r 设置变量为只读,与readonly等价

?

可以不定义变量,直接使用:
数值型默认值为0,字符型默认值为空

echo "e=$e" #未定义,直接使用,输出e=
let "e+=1"? #e=e+1
echo "e=$e" #e=1

?


环境变量


定义环境变量
第一步,对环境变量赋值(环境变量一般为大写字母):EVNIRON-VARIABLE=value
第二步,使用export声明该变量为环境变量:export EVNIRON-VARIABLE


如,设置1个环境变量,变量名为APPSPATH,值为/usr/local
APPSPATH=/usr/local
exprot APPSPATH
echo $APPSPATH

?

列出系统中的环境变量:env
输出内容很多,则使用grep抓取 env | grep xxx

?

清除环境变量
unset APPSPATH

?