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 @   Abnor  阅读(676)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示