我对shell脚本相对较新,并且我正在尝试编写一个脚本,该脚本根据脚本的输入自动创建日志,但这需要解析参数和(有时)创建目录。
我想记录脚本的第一部分,以防发生错误,因此想出了一些奇怪的日志文件。
#!/bin/bash
# Submission Example: sh task.sh 20 Illinois > /dev/null 2>&1 &
set -x
tmpfile=$( mktemp $PWD/begin_log.XXXXXX )
exec > $tmpfile 2>&1
week=$1
area=$2
__proj_logdir=$PWD/${week}
mkdir -p ${__proj_logdir}
__proj_log=${__proj_logdir}/${area}.log
function resolve_logs {
inter=$( mktemp $PWD/intermed_log.XXXXXX )
mv $__proj_log $inter
mv $tmpfile $__proj_log
cat $inter >> $__proj_log
rm -f $inter $tmpfile
}
trap resolve_logs EXIT
exec > $__proj_log 2>&1
echo "the rest of the script"
exit
我的问题是:是否存在允许这样做的内置命令或选项,还是有更好的方法来解决这个问题?