cleanup.sh

来自「学习嵌入式开发必备的基本命令及步骤」· Shell 代码 · 共 83 行

SH
83
字号
#!/bin/bash################################################################  说明:删除logfile 的脚本###############################################################LOG_DIR=/var/logROOT_UID=0     # $UID 为0 的用户才具有根用户的权限LINES=50       # 默认的保存行数E_XCD=66       # 不能修改目录,与下面的E_NOTROOT相似,用于本脚本退出返回E_NOTROOT=67   # 非根用户# 一定要使用根用户来运行if [ "$UID" -ne "$ROOT_UID" ]then  echo "Must be root to run this script."  exit $E_NOTROOTfi  # 在下面添加代码>># 功能:# 判断是否有命令行参数# 如果有则lines等于输入的参数,没有则使用前面定义的默认的保存行数LINES# 提示:# 可以使用if或case结构# lines变量用于表示清除LOG时保存的行数# >添加代码处<if [ -n "$1" ] # 测试是否有命令行参数(非空).then  lines=$1else    lines=$LINES #  如果不在命令行中指定,使用默认fi  #  可以使用下边的更好方法来检测命令行参数.#  其使用了case结构##    E_WRONGARGS=65  # Non-numerical argument (bad arg format)##    case "$1" in#    		""      ) lines=50;;#    		*[!0-9]*) echo "Usage: `basename $0` file-to-cleanup"; exit $E_WRONGARGS;;#    		*       ) lines=$1;;#    esac## 在下面添加代码>># 功能:# 进入LOG_DIR目录,如果失败,则退出,同时返回E_XCD# 提示:# 可以使用if结构或混合命令条件执行结构(||或者&&)# >添加代码处<cd $LOG_DIRif [ `pwd` != "$LOG_DIR" ]  # 也可以用   if [ "$PWD" != "$LOG_DIR" ]                            # 查看是否在 /var/log目录中then  echo "Can't change to $LOG_DIR."  exit $E_XCDfi	# 在处理log file 之前,再确认一遍当前目录是否正确.# 更有效率的做法是:## cd /var/log || {#   echo "Cannot change to necessary directory." >&2#   exit $E_XCD;# }tail -$lines messages > mesg.temp # 保存log file 消息的最后部分.mv mesg.temp messages             # 变为新的log 目录.cat /dev/null > wtmpecho "Logs cleaned up."exit 0#  退出之前返回0,表示成功.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?