二、变量的基础知识
shell中变量中不定义变量类型。shell变量是否为了方便调用。
shell变量:环境变量(全局变量),普通变量(局部变量)
shell 不区分类型,使用的时候区分变量类型。
(一)shell变量分类:
1、环境变量
全局变量,显示环境变量:
echo $变量;env;set
定义环境变量:
系统固有:PS1,PATH,HOME,UID
方法1
export OLDBOY=1;
方法2
OLDBOY=1
export OLDBOY
永久生效的方法:
添加至/etc/profile ; . /etc/profile
方法3
declare -x A=1
取消环境变量:unset 变量
环境变量的文件:
全局文件
/etc/profile
/etc/bashrc
用户环境变量文件
~/.bashrc
~/.bash_profile
环境变量生效的的顺序:
①~/.bash_profile
②~ /.bashrc
③/etc/bashrc
④/etc/profile
登录shell:
先加载/etc/profile ;~/.bash_profile,然后加载~/.bashrc ;再次加载/etc/bashrc(生效顺序相反)
2、普通变量
局部变量,当前用户或者脚本中生效。
①字符串变量
②变量名:字母,数字,下划线,不能以数字开头。
变量名定义规则:见名知意。首字母,下划线连接单词。
③变量内容:字符串,
单引号:所见即所得。
不用引号,双引号:先解析变量或者命令,然后输出。
双引号可以把要定义的内容作为一个整体。纯数字不加引号。
命令变量:反引号,括号
变量名=`ls`
变量名=$(ls)
普通变量总结:
①在脚本中定义普通字符串变量,尽量把变量的内容使用双引号。
②纯数字的变量内容可以不加引号。
③希望变量的内容原样输出需要加单引号。
④希望变量值引用命令并获取命令的结果就用反引号或者$()
⑤$db_t,若变量后面有其他字符连接的时候,就必须给变量加上大括号{},例如$db_t就要改成${db}_t。
⑥变量名的定义要有一定的命令规范,并且要见名知意。
⑦变量定义使用赋值符号(=),赋值符号两端不要有空格。