1、调试模式

bash -x  filename.sh

在脚本中使用 set -x

set -x 开启调试模式

set +x 关闭调试模式

组合起来控制调试模式的作用域


2、使用&&和||代替if,简化脚本


3、获取文件大小(单位B)(三个都可以,wc会带文件名)

stat -c %s filename

stat --print='%s\n' filename

wc -c filename


4、rsync备份

windows备份(端口、模块名等在rsync.conf中定义)

rsync --port=$PORT -vzrtopg --progress [email protected]$IP::$模块名 /local/file/path

linux备份(无秘互通)

rsync -avz '-e ssh -p $PORT' [email protected]:$/file/path /local/file/path


5、字符串处理

cut处理行

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f  :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。
shell 脚本整理

-3表示从开头删除到第三个字符,3-表示从第三个字符到结尾

shell 脚本整理

-c与-b功能类似,以字符为间隔符(对于中文,只能用-c处理)

shell 脚本整理

中文占的字节数不一样

shell 脚本整理

-d -f以域为单位处理

shell 脚本整理


6、文本处理

文本处理使用grep、sed、awd来处理

shell 脚本整理

shell 脚本整理

[[email protected] tmp]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config


7、获取文件路径、文件名

dirname 和basename


8、交集、并集

shell 脚本整理


9、显示多行或追加内容

cat [file] <<EOF

hello world!!

EOF


10、查看进程详细信息

lsof

shell 脚本整理


11、函数

#!/bin/bash

# test function

function helloworld(){

  echo "hello world"

}

passwd(){

 cat /etc/passwd

}

select var in "helloworld" "passwd" "break";do

case ${var} in

helloworld)

  helloworld

;;

passwd)

  passwd

;;

break|*)

  break

;;

esac

done

shell 脚本整理



参考:http://www.jb51.net/article/53967.htm