【发布时间】:2013-06-19 15:10:58
【问题描述】:
我在bash 中写了一个包装器,它调用其他的shell 脚本。但是,我只需要打印包装器的输出,避免调用脚本的输出,我基本上是登录到日志文件中。
详细说明……
基本上我使用的是函数
start_logging ${LOGFILE}
{
Funtion1
Funtion2
} 2>&1 | tee -a ${LOGFILE}
开始记录的定义为:-(我只能部分理解此功能)
start_logging()
{
## usage: start_logging
## start a new log or append to existing log file
declare -i rc=0
if [ ! "${LOGFILE}" ];then
## display error and bail
fi
local TIME_STAMP=$(date +%Y%m%d:%H:%M:%S)
## open ${LOGFILE} or append to existing ${LOGFILE} with timestamp and actual command line
if [ ${DRY_RUN} ]; then
echo "DRY_RUN set..."
echo "${TIME_STAMP} Starting $(basename ${0}) run: '${0} ${ORIG_ARGS}'" { I}
echo "DRY_RUN set..."
echo "Please ignore \"No such file or directory\" from tee..."
else
echo "${TIME_STAMP} Starting $(basename ${0}) run: '${0} ${ORIG_ARGS}'"
echo "${TIME_STAMP} Starting $(basename ${0}) run: '${0} ${ORIG_ARGS}'"
fi
return ${rc}
}
LOGFILE 在包装器中定义为
{
TMPDIR ="$/tmp"
LOGFILE="${TMPDIR}/${$}/${BASENAME%.*}.log
}
现在,当它调用函数 1、函数 2 时,它基本上调用了其他 bash 脚本,它将所有输出记录在文件中。即{ TMPDIR}/${$}/${BASENAME%.*}.log } 以及 bash 终端上。
我希望它只将我在包装器中写入的内容回显到 bash 终端,其余内容应记录在日志中。
请注意:- wrapper 调用的脚本内部有 echo 功能,但我不希望终端上显示输出
有没有可能实现....
【问题讨论】:
-
您将获得与您的问题成比例的答案。如果您提供更多详细信息,将得到更详细的答案。例如,如果您已经记录了后续脚本输出,它们如何进入标准输出?
标签: bash