我在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
}
现在,当它调用funtion1时,基本上调用其他bash脚本的funtion2将其所有输出记录在文件.i.e中。 {TMPDIR}/$ {$}/$ {BASENAME%。*} .log}以及bash终端上。
我希望它只能回应我在封装器中写入到bash终端的内容,其余应记录在日志中。
PleaseNote: - 从包装中称为脚本有回声函数中,但我不希望有输出应该在终端
显示是否有可能实现....
您将得到与您的问题成正比的答案。如果你提供更多的细节,会得到更详细的答案。例如,如果您已经记录了后续的脚本输出,它们如何进入stdout? – jm666
上面详细说明了! –