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