shell脚本应用(2)--变量,数值和字符串

  1. 变量
  • 定义,赋值: 
var=value
  • 引用
$var,${var}
  • 特殊变量
$?上条命令状态
$*/$@所有参数列表
$#参数个数
$0执行的命令名称
$1/${10}第1/10个参数
  1. 数值运算
  1. expr value1 op value2eg. expr $var1 + $var2
  2. $[ 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命令去处理
  1. 字符串操作
  • 子串截取
  1. dirname/basename $path提取$path里面的目录路径/文件名
  2. expr substr $string first length截取$string字串,从first(起始为1)开始,长度为length
  3. ${string:first:length}截取$string子串,从first(起始为0)开始,长度为length
  4. ${string#patten}从左开始匹配patten,从string删除最短的patten
  5. ${string%patten}从右开始匹配patten,从string删除最短的patten
  • 字符串替换
  1. ${string/old/new}将string中第一个old替换为new
  2. ${string//old/new}将string中所有old替换为new
  • 生成随机字符串
head -1 /dev/urandom | md5sum | cut -c1-8生成长度为8的随机字符串