Shell 变量
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:var1="hello world"
变量名称规则
1、命名只能使用英文字母,数字和下划线,首个字符不能以数字开头
2、中间不能有空格,可以使用下划线(_)
3、不能使用标点符号
4、不能使用bash里的关键字
Shell变量赋值
定义变量除了显式地直接赋值,还可以用语句给变量赋值:
result=$(ls -la ./)或者 result=`ls -la ./`
使用变量
使用变量使用一个定义过的变量,在变量名前加美元符号
$(变量)使用使用变量重点
echo ${imooc} (变量名外面的花括号是可选的,帮助解释器识别变量的边界)
运行结果为:
执行结果重新定义变量已定义的变量,可以被重新定义
运行结果为:
执行结果只读变量,防止变量被污染
只读变量使用readonly命令可以将变量定义为只读变量,只读变量的值不能被改变。
imooc="imooc.com"
readonly imooc
imooc="www.imooc.com" (报错)
运行结果为:
执行结果删除变量
使用unset命令可以删除变量:
imooc="imooc.com"
unset imooc
变量被删除后不能再次使用
unset命令不能删除只读变量
变量作用域
作用域:
局部变量(在当前shell种有效,其他Shell启动的程序无法访问)
环境变量(所有程序均可访问)
变量数据类型
数据类型字符串:
可以用单引号,可以用双引号,可以不用引号
单双引号的区别跟PHP类似
单引号不解析变量
单引号字符串不能出现单独一个的单引号(对单引号使用转译符后也不行),但可成对出现,作为字符串拼接使用
双引号里可以有变量,可以出现转义字符
运行结果:
执行结果转义字符:
转义字符运行结果:
执行结果字符串拼接:
"hello,"$your_name"!"
字符串长度
字符串长度echo ${#string}
运行结果:
执行结果字符串截取
字符串截取 执行结果echo ${string:1:4} 1代表从哪里开始,4代表截取的长度,字符串索引起始位为0
字符串查找
字符串查找 执行结果echo `expr index "$string" i` expr index是固定写法 i代表要查找的字符 查找出的索引是从1开始
数组
数组定义bash支持一维数组(不支持多维数组),并且没有限定数组的大小
类似于C语言,数组元素的下标由0开始编号。获取数组种的元素要利用下标,下标可以是整数或算数表达式,其值应大于或等于0
在Shell 中,用括号来表示数组,数组元素用空格符号分割开
数组名=(值1 值2 ...值n)
也可以不使用连续的下标,而且下标的范围没有限制
读取数组 :${数组名[下标]}
使用@符号可以获取数组中的所有元素 echo ${array_name[@]}
获取数组长度:length=${#array_name[@]}
获取数组单个元素的长度: length=${array_name[n]}
Shell 注释
单行注释 #
多行注释
:<<EOF ... EOF
网友评论