shell模板-跨目录执行,彩色输出,临时文件,行遍历文件

参数检查

#!/bin/bash
set -e
if [ ! -n "$1" ];then
	echo "Usage: #cmd <> []"
	exit
fi

跨目录执行脚本但维持脚本与"."的相对位置不变

SH_PATH=$(cd $(dirname $0);pwd)
cd ${SH_PATH}

彩色日志输出

COLOR_RED='\033[1;31m'
COLOR_GREEN='\033[1;32m'
COLOR_NC='\033[0m'

Log_INFO(){
	msg=$1
	echo -e "${COLOR_GREEN} [$(date "+%Y-%m-%d %T %N") INFO ] ${COLOR_NC}: ${msg} "
}
Log_ERR(){
	msg=$1
	echo -e "${COLOR_RED} [$(date "+%Y-%m-%d %T %N") ERROR] ${COLOR_NC}: ${msg} "
}

使用临时文件, 防止使用的文件与已知文件重名而被替换

TEMP_DIR=$(mktemp -dt temp_dir.XXXX)
TEMP_FILE=$(mktemp -t temp_file.XXXX)

输出到标准输出的同时写入到文件

date |tee ${TEMP_FILE}

逐行处理文本文件,注意文本要set fileformat=unix确保格式正确

cat $1|while read LINE
do
	echo "${LINE}"
	FILE_NAME=$(basename "${LINE}")
	if [ "${FILE_NAME}" == "one_file" ];then
		Log_INFO "eq"
		Log_ERR "noeq"
	fi
done

posted @ 2017-09-04 23:52  Abnor  阅读(665)  评论(0编辑  收藏  举报