shell脚本应用(2)--变量,数值和字符串
- 变量
- 定义,赋值:
var=value
- 引用
$var,${var}
- 特殊变量
$?上条命令状态
$*/$@所有参数列表
$#参数个数
$0执行的命令名称
$1/${10}第1/10个参数
- 数值运算
- expr value1 op value2eg. expr $var1 + $var2
- $[ value1 op value2 ]eg.$[var1+var2]
- 变量递更
let var++自增1
let var+=2自增2
- 随机数生成
echo $RANDOM$RANDOM生成随机数
- 生成数字序列
seq first end显示first,first+1,...,end
seq first step end显示first,first+step,...
- 小数计算(bc命令)
echo “45.6×33.2” | bc将运算的字符串传递给bc命令去处理
- 字符串操作
- 子串截取
- dirname/basename $path提取$path里面的目录路径/文件名
- expr substr $string first length截取$string字串,从first(起始为1)开始,长度为length
- ${string:first:length}截取$string子串,从first(起始为0)开始,长度为length
- ${string#patten}从左开始匹配patten,从string删除最短的patten
- ${string%patten}从右开始匹配patten,从string删除最短的patten
- 字符串替换
- ${string/old/new}将string中第一个old替换为new
- ${string//old/new}将string中所有old替换为new
- 生成随机字符串
head -1 /dev/urandom | md5sum | cut -c1-8生成长度为8的随机字符串