shell编程技巧和陷阱

先推荐两本经典书籍:

1、advanced bash scripting guide http://www.tldp.org/LDP/abs/abs-guide.pdf

2、Unix Power Tools  

豆瓣的一些点评 http://book.douban.com/subject/1469315/

一个在线地址 http://sys-admin.net/ebooks/unix3/upt/

1、cat 打开一个文件,并且输入到某个指定的字符串时自动结束,这里当输入ok时,输入自动结束,文件实际内容不包括ok。

$ cat>b.sh<<ok
> !#/bin/sh
> echo 'hello world'
> ok

2、tee命令,想到与复制,把数据同时输出到文件和标准输出

ll />a.txt
$ cat a.txt|tee a.txt.bak|grep usr|tee middle.txt|wc

3、ls / >/dev/null 2>&1 

 标准出错跟标准输出都写到/dev/null,相当于什么都不输出

4、进程替换 <() >()

应用举例,比如比较两台机器的某个配置文件

vimdiff <(ssh server1 cat abc.conf) <(ssh server2 cat abc.conf)

这样就不用都download到本地再比较

5、备份恢复文件例子,比如线上文件的备份与回滚

备份:

for file in $(ls); do

cp $file $file.bak

done

 还原:

for file in $(ls *.bak);do

cp $file ${file%%.bak}

done

原文地址:https://www.cnblogs.com/argb/p/3452101.html