shell 脚本整理
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 标志一起使用。 |
-3表示从开头删除到第三个字符,3-表示从第三个字符到结尾 |
-c与-b功能类似,以字符为间隔符(对于中文,只能用-c处理) 中文占的字节数不一样 |
-d -f以域为单位处理 |
6、文本处理
文本处理使用grep、sed、awd来处理
[[email protected] tmp]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
7、获取文件路径、文件名
dirname 和basename
8、交集、并集
9、显示多行或追加内容
cat [file] <<EOF
hello world!!
EOF
10、查看进程详细信息
lsof
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 |
参考:http://www.jb51.net/article/53967.htm
转载于:https://blog.51cto.com/13323775/2052824