=================================批量跨机器拷贝数据
for i in `find /data/zabbix -name "*.sh"`;do sudo scp $i ==============================cut -c 1-3 截取字符=============批量更改文件名:把finished去掉stu_102999_1_finished.jpgstu_102999_2_finished.jpgstu_102999_3_finished.jpgstu_102999_4_finished.jpgstu_102999_5_finished.jpg脚本:for i in `ls *.jpg`;do mv $i `echo ${i%.jpg*}.JPG`;done
=============================把jpg换成大写JPG=====================rename 要改的部门 改成的部分 文件rename 批量改名;rename .JPG .htm *.JPG==========================变量的替换----------------${value:-word}result=${test:-UNSET}当test 没有被定义的时候就会返回后面的UNSET当test有内容时,echo $resule 返回为定义的test意义:这个变量的功能可以用来判断变量是否定义。防止变量没有定义,但不会给变量赋值----------------${value:=word}result=${test:=UNSET}意义:确保变量始终有值,变量没定义就赋值,变量有值就直接输出。----------------${value-world}变量不存在,用world替代。===============================sh -x *.sh 追踪脚本执行的过程。===========================rm -fr $PATH 一定要小心,如果PATH 没有被定义默认会删除当前目录。。。***************find${path:/tmp/} -name "*.tar.gz" -type f|xargs rm -f 这样可以放在$path 没有被定义。。。。================================================================================================计算变量长度的不同方法及不同方法的耗时对比计算字符串的长度:
char=`seq -s "" 100`1、echo ${#char}2、echo $char|wc -m 比真实的多一个字符串(计算了回车)3、echo $(expr length "$char")===========================比较不同的脚本耗时1、time for i in `seq -s " " 11111`;do count=${#i};donereal 0m14.763suser 0m2.778ssys 0m11.818s2、time for i in $(seq 11111);do count=`echo $i|wc -m`;donereal 0m11.952suser 0m2.627ssys 0m9.254s3、time for i in $(seq 11111);do count=$(expr length "$char");donereal 0m5.550suser 0m1.494ssys 0m3.958s========================