小窥shell语法之变量
1、变量的定义
变量就是一个字符串,可以指向一个内容,该内容可以使是一个路径,一个数字,一个命令等;也可以说是内存的一片区域的地址(类似于指针的概念)。
变量的存在使得原命令无法操作的变化目标变成固定,使得脚本在运行过程中更加宽泛。
2、shell中变量的命名规则
变量名称可包含内容:' 字符 '、' _ ' 、' 数字 ';
规则:不能用数字开头即可。
建议:变量的命名是任意的,但为了使所起的变量名字在自己使用以及别人代码的可读性而言,我们一般将短名字大写或者大类_小类。
3、变量的定义
3.1 环境级别的变量
如何设定:在当前环境中直接设定:Vname=value;
使用范围:当前环境中;
使用扩展:将该变量引用到下面的子进程中,export Vname=value;
使用周期:当前环境关闭即清除。
3.2 用户级别的变量
如何设定:切换到对应的用户bash中,编辑~/.bash_profile,在该文件中设定即可:vim ~/.bash_profile;
使用范围:当前用户下均可使用;
使用扩展:export Vname=value;
使用周期:不做其他处理,则永久生效。
3.3 系统级别的变量
如何设定:在超级用户权限下编辑 /etc/profile;
使用范围:改系统下均可使用;
使用扩展:将其传递到shell中:export Vname=value;
使用周期:不做任何处理,会永久生效。
说明:export可新增,修改或删除环境变量,export的效力仅及于该次登陆操作。
3、变量的转义
因为当变量中存在一些命令,特殊符号的含义时,此时需要进行转义。
转义符号:
\ :单个字符的转义;
" " :弱引用,批量转义字符,但不能转义 \ ` ` $ !
' ' :强引用,批量转义。
4、数组变量
普通变量的申请:
a=1 ###给a变量赋值
echo $a ###查看a变量
echo ${a}b ###查看a变量且后面跟b
数组变量的申请:
a=(1 2 3 4 5) ###数组a的申请
a=(`ls -l `) ###数组a的值为命令执行的结果
echo ${a[0]} ###查看数组0的位置
echo ${a[-1]} ###查看数组-1的位置
echo ${a[*]} ###查看数组所有值,此时表示所有字符为一个字段
echo ${a[@]} ###查看数组所有值,此时单独输出每一个数
查看数组长度:
${#数组名[@/*]} 可得到数组的长度
删除数组:
unset a[1] ###清除A数组的1号元素;
unset a ###清除A数组
多个访问:
{数组名[@或*]:开始下标:结束下标}
说明:在数组赋值时,元素下表存在会修改原下标;赋值时指定位置大于总长度,会追加。
【注】echo 查看单个变量 ,env 查看所有环境变量,set查看所有本地定义的环境变量。
5、命令的别名
临时设定:
alias xie='vim'
永久设定:
###针对当前用户生效
vim ~/.bashrc
alias xie='vim'
source /.bashrc
###针对系统全局生效
vim /etc/bashrc
alias xie'vim'
source /etc/bashrc
删除当前环境中的alias
unalias xie
命令演示:
【注】当设定全局设定时,若只在某个用户下清除alias记录,则只在该用户下生效。