标签:必须 fail linu message 控制 can 权限 directory 日志脚本
当命令或程序语句不在命令行下执行,而是通过一个程序文件来执行时,改程序就被称为
Shell
脚本。如果在Shell
脚本里内置了很多条命令、语句及循环控制,然后将这些命令一次性执行完毕,这种通过文件执行脚本的方式称为非交互式的方式。这些命令、变量和流程控制语句等有机地结合起来,就形成了一个功能强大的Shell
脚本。
范例1: 清除
/var/log
下messages
日志文件的简单命令脚本
把所有命令放在一个文件里,堆积起来后就形成了脚本,如下所示:(必须是
root
身份来运行这个脚本)
# 清除日志脚本,版本 1
cd /var/log
cat /dev/null >messages
echo "Logs cleaned up."
这个脚本其实是有一些问题的,具体如下:
- 1)如果不是
root
用户,则无法执行脚本清理日志,并且会提示系统的权限报错信息。- 2)没有任何流程控制语句,简单地说就是只进行顺序操作,没有成功判断和逻辑严密性。
范例2: 写一个包含命令、变量和流程控制的语句来清除
/var/log
下messages
日志文件的Shell
脚本。
#!/bin/bash
# 清除日志脚本,版本 2
LOG_DIR=/var/log
ROOT_UID=0
if [ "$UID" -ne "$ROOT_UID" ]
then
echo "Must be root to run this script."
exit 1
fi
cd $LOG_DIR || {
echo "Cannot change to necessary directory."
exit 1
}
cat /dev/null >messages &&{
echo "Logs cleaned up."
exit 0
}
echo "Logs cleaned up fail."
exit 1
注:本文参考《跟老男孩学Linux运维-Shell编程实战》?
版权所有 ? 个人学习 ? 仅供参考 ? 未经允许 ? 不得商用
标签:必须 fail linu message 控制 can 权限 directory 日志脚本
原文地址:https://www.cnblogs.com/wjcLinux/p/10967143.html