我在 中编写了一个包装器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 脚本,它会将所有输出记录在文件 .ie { TMPDIR}/${$}/${BASENAME%.*}.log } 以及 bash 终端上。
我希望它只应将我在包装器中写入的内容回显到 bash 终端,其余内容应记录在日志中。
请注意:- 包装器中调用的脚本内部具有回显功能,但我不希望在终端上显示输出
有没有可能实现......