Shell脚本教程——使用exec实现日志永久重定向
一、永久重定向的作用
在Linux系统中可以通过操作符>、>>来实现输出重定向,但是它们都属于临时重定向,只对当前命令有效,后续所有命令都无效。但是在一些脚本中可能需要反反复复去输出一些文本内容作为日志,这样的话就需要使用大量的>>操作符来不断的追加内容。这样做的话不光写起来非常麻烦,后续如果想修改重定向的路径也是一项巨大的工作量。要解决这个问题的话就可以通过exec命令让重定向对当前 Shell 进程中的所有命令生效
二、使用exec进行永久重定向
#将当前 Shell 进程的所有标准输出重定向到 log.txt 文件,它等价于exec 1 > log.txt exec > log.txt #下面的输出将不会输出到前台,而是log.txt文件 echo "c c++" echo "123456" #查看文件进行验证 cat log.txt c c++ 123456
三、恢复永久重定向
对于已经设置好了重定向的进程,如果想进行还原的话有两种方式
#还原重定向,让标准输出重新回到显示器。因为 2 是标准错误输出,在之前的定义中并没有修改它,所以用2来覆盖1就能修复1。如果文件描述符 2 也被重定向了,该方法无效 exec 1>&2 #/dev/tty 用于前端显示,所以将标准输出重定向到 /dev/tty 即可恢复 exec >/dev/tty
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论