下面是一个简单的Linux Shell脚本示例,它结合了文本处理、文件操作和简单的系统监控功能。这个脚本的主要目的是检查指定目录下的日志文件大小,如果文件大小超过100MB,则输出警告信息并备份该文件。此脚本还包含了一个简单的帮助文档功能。
#!/bin/bash
# 定义函数:显示帮助信息
function show_help {
echo "Usage: $0 [-d <directory>]"
echo "Options:"
echo " -d, --directory 目标日志文件所在目录,默认为当前目录"
echo " -h, --help 显示此帮助信息并退出"
}
# 初始化变量
DIRECTORY="."
MAX_SIZE=$((100*1024*1024)) # 100MB
# 处理命令行参数
while [[ $# -gt 0 ]]; do
case "$1" in
-d|--directory)
DIRECTORY="$2"
shift # 过滤掉已处理的选项
shift ;;
-h|--help)
show_help
exit 0 ;;
*)
echo "未知参数: $1"
show_help
exit 1 ;;
esac
done
# 检查目录是否存在
if [[ ! -d $DIRECTORY ]]; then
echo "错误:指定的目录不存在。"
exit 1
fi
# 遍历目录,检查每个文件
for file in "$DIRECTORY"/*; do
if [[ -f $file ]]; then
size=$(stat -c %s "$file")
if (( size > MAX_SIZE )); then
echo "警告:文件 '$file' 大小超过100MB,将进行备份。"
backup_file="${file}.bak_$(date +%Y%m%d%H%M%S)"
cp "$file" "$backup_file"
# 可以在这里添加更多操作,比如压缩备份文件等
fi
fi
done
echo "检查完成。"
这个脚本展示了如何使用条件判断、循环、命令行参数处理以及基本的文件和目录操作。它也通过注释保持了良好的可读性,方便其他开发者理解和维护。在实际应用中,可以根据需要调整最大文件大小阈值、备份策略等参数。