首页 > 代码库 > 2014年7月21号 (shell学习一)
2014年7月21号 (shell学习一)
实例一:
第一步:使用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 -$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要和方括号之间有空格,表达式要和方阔号之间有空格