time for i in $(seq 11111);do count=`echo expr length "${chars}"`;done;
time 表示打出当前脚本运行时间,后面的语句 表示求字符长度
变量的数值计算:
((a=xxxxx))
b=$((xxxxxx)) 只能计算整数
++ -- 变量在前,先输出变量值,变量在后,就是先运算后输出变量的值
** 表示幂运算
判断文件的扩展名 if expr “$1”:".*\.pub" (扩展名不是.pub 就返回0 ,如果是,则返回$1字符串的长度)
if expr “$1”:".*\.pub"; then xxxx fi
或者
expr “$1”:".*\.pub" &&echo 1 ||echo 0 如果匹配输出1 否则输出0
判断变量是否是整数, 用变量加0 如果$? 返回非零,则表示报错,则不是整数
shell脚本用反斜线表示换一行接着写
如果出错可以用dos2unix xxxx.sh
read 表示读入参数 给对应变量 read -t 5 -p “pls input:” a 把读入的数据传给变量a,5秒后就超时退出 -p表示给用户的提示信息
i=2
i=`echo $i+1|bc` 输出内容通过管道交给bc 计算器程序(优势在计算小数)
seq -s “+” 10 从1开始到10 产生一个序列,中间用加号连接
echo “scale=2:;5.23/3.13”|bc 表示将结果保留两位小数
echo “obase=2:;5.23/3.13”|bc 表示将结果输出为2进制
$ 表示取出变量的值
-f xxxx 表示 xxxxx文件是否存在
-d xxxxx 表示 xxxxx 目录是否存在
-z “xxxx” 判断字符串是否长度为0,为0则为真
变量表示参数进行判断加上双引号比较保险,双引号会把内容填入变量之中
字符串变量一定要加双引号
求字符串长度“${#xxxxx}” 字符串xxxxx的长度
多行内容打印输出用
cat <<END
111111
222222
333333
END
if[条件]
then
指令
fi
如果要写在一行就要用分号分开
查看多余内存 free -m
剩余内存,linux 特性,只要不用的内存就给你缓存起来,真正的内存看buffer位置
free -m|awk '/buffers\// {print $NF}' awk 命令找到对应关键字的行 $NF
NF代表:浏览记录的域的个数
$NF代表:最后一个Field(列)
{print NF} 也有{print $NF}
前者是输出了域个数,后者是输出最后一个字段的内容
if 条件
then
指令
elif 条件
then
指令
else
指令
fi
发邮件的语法
aaaa | mail -s "主题" “xxxxxxx@qq.com” # aaa是内容,主题是主题,xxxx是邮箱地址
或者先赋值变量F,然后 mail -s "主题" “xxxxxxx@qq.com”< $F
sed 's/ //g'
s 替换
/ 正则表达式开始
[ ] 匹配[]中的每个字符,这里是空格
* 前一字符重复任意次(包含0次)
$ 锚定行尾
g 全部替换
判断字符串是否为数字的方法:
1、把字符串中数字全部去掉,看看长度是否为零
2、把变量字串的数字去掉--echo “${"oldboy521"//[0-9]/}” 格式为${字串//正则/替换成xxx}
3、把非数字的部分删除看看是不是本身
4、expr 计算判断 expr $1 +0 >/dev/null 2>&1