使用parms记录后台进程作为日志名称

时间:2015-11-18 17:02:51

标签: bash logging sh

我对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 

我的问题是:是否存在允许这样做的内置命令或选项,还是有更好的方法来解决这个问题?

0 个答案:

没有答案