您的位置:首页 > 运维架构 > Shell

2014年7月21号 (shell学习一)

2014-07-21 16:52 274 查看
实例一:

第一步:使用vi创建一个文件**.sh(vi的使用这里暂不介绍)

#!/bin/bash 注:这是指明有那个shell来解释下边的命令

cd /var/log #切换目录到/var/log下(#是shell中的注释符)
cat /dev/null > messages #这里用到啦输入输出重定向这里是输入重定向,/dev/null是linux中的设备,俗称无低洞。
cat /dev/null > wtmp
echo "Logs cleaned up." 这里是输出一句话

增强版:

#!/bin/bash
#Cleanup 2, 版本

LOG_DIR=/var/log(注:shell是一种弱类型变量,不需要声明变量)
cd $LOG_DIR
cat /dev/null > messages
cat /dev/null > wtmp
echo "Logs cleaned up."
exit

#!/bin/bash
LOG_DIR=/var/log
ROOT_UID=0
LINES=50
E_XCD=66 # 不能修改目录?
E_NOTROOT=67 # 非根用户将以error 退出
if [ "$UID" -ne "$ROOT_UID" ]



then
echo "Must be root to run this script."
exit $E_NOTROOT
fi

if [ -n "$1" ]
then
lines=$1
else
lines=$LINES # 默认,如果不在命令行中指定
fi
bbpengwang解释:判断字符串$1是否为空,若为空则返回false,不为空则返回ture
cd $LOG_DIR
if [ `pwd` != "$LOG_DIR" ] # 或者 if[ "$PWD" != "$LOG_DIR" ]
# 不在 /var/log 中?
then
echo "Can't change to $LOG_DIR."
exit $E_XCD
fi # 在处理log file 之前,再确认一遍当前目录是否正确.

tail -n $lines messages > mesg.temp
mv mesg.temp messages

cat /dev/null > wtmp # ': > wtmp' 和 '> wtmp'具有相同的作用
echo "Logs cleaned up."
exit 0
# 退出之前返回0,返回0 表示成功.

本人中文名字:王鹏,英文名字:pengwang,联系方式:1352920044,qq群:363356101

这里提醒一下大家,一定要注意if语句的写法if [ ] if要和方括号之间有空格,表达式要和方阔号之间有空格

大家好昨天看的中文译版中有很多错误,今天把他们纠正过来,过两天本园主把脚本上传给大家
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: