Shell脚本中如何将所有命令执⾏的结果定位到⽇志中
经常会有⼈问:Shell中如何将⾃⼰的脚本中的每条命令的执⾏结果放置到⾃定义的⽇志⽂件中?默认情况下,每条命令执⾏后,标准输出会定向到屏幕输出,标准错误也会定向到屏幕输出,但屏幕⼀晃⽽过,你也就看不到了,如果使⽤>或者>>,即重定向或者追加重定向是可以将每条命令的输出定位到⽇志⽂件中的,但是要将所有的命令的输出结果定向到⼀个⽂件就必须每条命令重定向⼀次,⾮常之不⽅便!使⽤tee命令不过是,定位,追踪代码的时候⽅便。还是达不到⽬的,这个时候使⽤exec命令⾮常⽅便。
⽐如:
#!/bin/bash
set -xv
exec 1>mylog 2>&1
free
shell脚本返回执行结果df -h
pwd
第⼀⾏是shebang,告诉shell便器使⽤/bin⽬录的bash来编译脚本。
第⼆⾏是打开模式开关 -v:显⽰shell所读取的输⼊值。-x:执⾏指令后,会先显⽰该指令及所下的参数
第三⾏exec命令⽤于调⽤并执⾏指令的命令。
exec命令通常⽤在shell脚本程序中,可以调⽤其他的命令
1> mylog 是将标准输出重定向到mylog⽂件中
2>&1 是将标准错误定向到标准输⼊,⼀起定向到mylog中,也就是说,标准输⼊和标准输出都会到mylog⽂件中
执⾏上⾯的脚本后,就会将后⾯三条命令free, df -h, pwd命令的执⾏结果全部⽣产到mylog⽂件中,也就达到了将所有命令执⾏结果保存到⼀个⽂件的⽬的,⾮常之⽅便!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论