shell变量
- 变量定义
- 变量使用
示例 1:
#! /bin/bash var=aaa echo ${var}
执行结果:
$ ./demo.sh
$ aaa示例 2:
#! /bin/bash var=aaa bbb ccc echo ${var}
执行结果:
$ ./demo.sh
./demo.sh: line 3: bbb: command not found示例 3:
#! /bin/bash var="aaa bbb ccc"
echo ${var}执行结果:
$ ./demo.sh
aaa bbb ccc - 变量删除
unset <var_name>
- 变量只读
readonly <var_name>
通过 readonly 表明只读变量,对只读变量的修改会报错(不能被删除)。
字符串
- 单引号
单引号字符串中的变量是无效的;单引号中不能出现单一的单引号;
- 双引号
双引号中可以有变量; 双引号里可以出先转义字符;双引号中的单引号输出时维持单引号不变
示例 1:
#! /bin/bash var="aaa
bbb
ccc"
echo ${var}执行结果:
$ ./demo.sh
aaa bbb ccc #变量中的换行被忽略,且只有一个空格当字符串当成变量展开时,字符串中的多个空格或换行在展开时会只剩一个(方便for循环时候做处理)。
示例 2:
#! /bin/bash var="aaa
bbb
ccc"
echo "${var}"执行结果:
$ ./demo.sh
aaa
bbbb ccc
- 获取字符串长度
string="abcdefg"
echo ${#string} - 提取字符串
string="abcdefg"
#0123456
echo ${string:1:4} #输出 bcde - 查找字符串
string="abcdef" echo `expr index "$string" ef` #输出5,因为 e 是第五个出现的
shell 数组
- 数组定义
array_name=(value0 value1 value2 value3)
array_name=( value0 value1 value2 value3 )
array_name[0]=value0 array_name[1]=value1 array_name[n]=valuen
- 读取数组
${数组名[下标]}
-
获取数组的长度
# 取得数组元素的个数 length=${#array_name[@]} length=${#array_name[*]}
# 取得数组单个元素的长度 lengthn=${#array_name[n]}