标签:shell学习笔记
=================================批量跨机器拷贝数据
for i in `find /data/zabbix -name "*.sh"`;do sudo scp $i root@ip:/peng/study.sh/;done
==============================
cut -c 1-3 截取字符
=============批量更改文件名:把finished去掉
stu_102999_1_finished.jpg
stu_102999_2_finished.jpg
stu_102999_3_finished.jpg
stu_102999_4_finished.jpg
stu_102999_5_finished.jpg
脚本:for i in `ls *.jpg`;do mv $i `echo ${i%.jpg*}.JPG`;done
=============================把jpg换成大写JPG
http://oldboy.blog.51cto.com/2561410/711342
=====================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};done
real 0m14.763s
user 0m2.778s
sys 0m11.818s
2、time for i in $(seq 11111);do count=`echo $i|wc -m`;done
real 0m11.952s
user 0m2.627s
sys 0m9.254s
3、time for i in $(seq 11111);do count=$(expr length "$char");done
real 0m5.550s
user 0m1.494s
sys 0m3.958s
========================
本文出自 “追梦” 博客,转载请与作者联系!
标签:shell学习笔记
原文地址:http://5686015.blog.51cto.com/5676015/1717500