今天在写脚本的时候遇到好多问题,以下就是个典型:
cat /etc/hosts | uniq > /etc/hosts
cat /etc/hosts
我们会发现结果是第一次的时候没有问题,但是从第二次开始,/etc/hosts文件就开始变成空的了,具体是什么原因呢,还是不懂就问呗,高手说是文件锁机制:
管道命令不是前一个命令完全执行完再传递给后面的命令的啦。。。
是边传递边执行 又读又写的,肯定会出问题!
是边传递边执行 又读又写的,肯定会出问题!
修改方案:
cat /etc/hosts | uniq > /etc/hosts.tmp
mv /etc/hosts.tmp /etc/hosts
cat /etc/hosts
楼下有高手的,有补充的也可以在此讨论O(∩_∩)O哈!