首页 > 代码库 > 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要和方括号之间有空格,表达式要和方阔号之间有空格