如何输出重定向返回到显示单个命令
在外壳脚本我有如何输出重定向返回到显示单个命令
LOG=/my.log
exec 1>>$LOG
exec 2>&1
被重定向在外壳脚本的输出。现在问题是在下面
LOG=/etc/security/aixpert/log/aixpert.log
exec 1>>$LOG
exec 2>&1
#some codes
print "I want this on cmd output not in log"
#I want rest of the output redirected to log as usual
我该怎么做?
关键是要克隆stdout
在将控制台重定向到日志之前将控制台复制到任意fd(我选择了3)。每当你想输出发送到你刚才重定向FD 1控制台回的fd 3 >&3
对于一个命令
LOG=/etc/security/aixpert/log/aixpert.log
exec 3>&1 >>"$LOG" 2>&1
#some codes
echo "I want this on cmd output not in log" >&3
#I want rest of the output redirected to log as usual
# save stdout as fd 3
exec 3>&1
exec 1>>$LOG
exec 2>&1
echo foo >&3 # output to old stdout
echo bar # output to logfile
为什么downvote? – 2012-01-04 11:07:58
对不起,我的意思是upvote。 – SiegeX 2012-01-04 11:08:29
@SiegeX:谢谢:) +1你的回答也是,我想你其实早几秒钟。 – 2012-01-04 11:10:40
它是精细挑选任何FD?是否有可能将3分配给由正在操作的另一个应用程序打开的文件? – 2012-01-04 11:32:46