在windows里面进行任务处理通常是用批处理,但是其功能是单薄的.而且一般公司服务器都是用的linux系统,批处理是没有用武之地的,关键时候还是shell给力.其实说白了,shell编程就是linux命令的组合.
变量
定义,赋值:
1var=value
引用
1$var,${var}
特殊变量
$?
上条命令状态$*
/$@
所有参数列表$#
参数个数$0
执行的命令名称$1
/${10}
第1/10个参数
数值运算
基本用法
1expr value1 op value2 # eg. expr $var1 + $var2 2$[ value1 op value2 ] # eg. $[var1+var2]
变量递更
1let var++ # 自增1 2let var+=2 # 自增2
随机数生成
1echo $RANDOM # $RANDOM生成随机数
生成数字序列
1# 显示first,first+1,...,end 2seq first end 3# 显示first,first+step,... 4seq first step end
小数计算(bc命令)
1# 将运算的字符串传递给bc命令去处理 2echo “45.6×33.2” | bc
字符串操作
子串截取
1# 提取$path里面的目录路径/文件名 2dirname/basename $path 3# 截取$string字串,从first(起始为1)开始,长度为length 4expr substr $string first 5# 截取$string子串,从first(起始为0)开始,长度为length 6${string:first:length} 7# 从左开始匹配patten,从string删除最短的patten 8${string#patten} 9# 从右开始匹配patten,从string删除最短的patten 10${string%patten}
字符串替换
1# 将string中第一个old替换为new 2${string/old/new} 3# 将string中所有old替换为new 4${string//old/new}
生成随机字符串
1# 生成长度为8的随机字符串 2head -1 /dev/urandom | md5sum | cut -c1-8