随机数
系统变量 RANDOM,默认产生0-32767的随机整数
echo $RANDOM
数组
普通数组 :下标只能是整数
关联数组:下表可以是字符串
array[索引下表]=值
array=(值1 值2 值3)
访问 echo ${array[下标]}
echo ${array[]:0:3}
访问全部 echo ${array[]}
获取个数 echo ${#array[*]}
关联数组
定义:首先声明
declare -A array
赋值
array[索引]=值
array=([name1]=值 [name2]=值 [name3]=值)
访问
echo ${array[]}
访问下标 echo ${!array[*]}
CASE
case语句 多重匹配语句
case var in //var变量名
pattern 1)
command
;;
pattern 2)
command2
;;
*)
command
;;
esac
函数
定义
1 :
函数名()
{
命令
}
2 :
function 函数名()
{
命令
}
标题
调用
在当前终端生效
加载一下 source **.sh
函数名
return
结束函数,返回一个命令状态值 [0-256]
正则表达式
元字符
. 匹配单个字符
* 匹配前导字符出现0次或连续多次
.* 任意长度字符
^ 行首
$ 行尾
^$ 空行
[] 匹配括号里任意单个字符或一组单个字符
[^] 匹配不包含括号里任意单个字符或一组单个字符
1 匹配括号里任意单个字符或一组单个字符开头
< 取单词头
> 取单词尾
< > 精确匹配
{n} 匹配前导字符连续出现n次
{n,} 匹配前导字符至少出现n次
( ) 保护被匹配的字符 :%s/(12)3/\14 将123修改为124
\d 匹配数字 \D
\w 匹配字母数字下划线 \W
\s 匹配空格制表符换页符 \S
扩展正则
gerp 加参数 -E
sed 加参数 -r
- 匹配一个或多个前导字符
? 匹配零个或一个前导字符
| 或
() 组字符
{n}
{n,}
{n,m}
查询IP地址
[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}
([0-9]{1,3}.){3}[0-9]{1,3} (-E)
\d+.\d+.\d+.\d+