Shell脚本简单实例(一)

#!/bin/bash

# 以上是 Shell 脚本的解释器,开头必须要写,表示 Shell 脚本。/bin/sh 更多的用于 UNIX 下,并且相比 Bash 少了一些特性。更多地使用 /bin/bash,但是在 Linux 中 /bin/sh 是 /bin/bash 的软链接。

# Cleanup, version 3

LOG_DIR=/var/log    # 这里定义变量,一般都会定义经常用的内容,引用变量更专业更方便。

ROOT_UID=0            # 只有 root 用户才有权限。root 的 $UID 为 0。

LINES=50                  # 保存多少行。

E_XCD=86                 # 不能切换目录,导致退出的错误代码。

E_NOROOT=87         # 不是 root 用户,没权限退出的错误代码。

if [ "$UID" -ne "$ROOT_UID" ]        # 如果当前用户不是 root。-ne 表示不等于,-eq 表示等于。

then

echo "Must be root to run this script."    # 则打印。

exit $E_NOROOT                            # 并且退出。

fi

if [ -n "$1" ]                                # 如果第一个参数(位于脚本后)不是非空。n 表示 non-zero。

then

lines=$1                                 # 把第一个参数的值赋给变量 lines。

else

lines=$LINES                          # 如果第一个参数是空,则 lines 值为变量 LINES 赋予的值,为 50。

fi

### 以上这段也可以下面代替###

#######################################################################

E_WRONGARGS=85    # 非数字退出代码。

case "$1" in

"") lines=$LINES;;        # 如果第一个参数是空,则 lines 为 50。

*[!0-9]*) echo "Usage `basename $0` lines-to-cleanup`"; exit $E_WRONGARGS;;        # 也可以写成 *[^0-9]*。是通配符语法,字符串中有一个非数字,整个字符串就是非纯数字。[[:digit:]] 也是表示数字,但是只表示一个数字。`basename $0` 是脚本的自己名字(不含路径)。如果第一个参数输入的是非纯数字,则打印错误代码。

*) lines=$1;;    # 如果第一个参数是纯数字,则 lines 为参数值。

esac

#######################################################################

cd $LOG_DIR

if [ `pwd` != "$LOG_DIR" ]            # 这里的 `pwd` 也可以写成 $PWD。!= 表示不等于,也可以用 -ne。

then

echo "Can‘t change to $LOG_DIR."

exit $E_XCD

fi

### 上述代码也可以写成 ###

#######################################################################

cd $LOG_DIR || {

echo "Cant‘ change to necessary directory." >&2    # >&2 也就是 1>&2,就是把标准输出重定向到标准错误。但是这里加不加都一样的。|| 表示前面的命令执行失败后,执行后面的命令。若前面的命令执行成功,则后面的命令不执行。

exit $E_XCD;

}

#######################################################################

tail -n $lines messages > mesg.tmp

mv mesg.temp messages

cat /dev/null > wtmp    # 清空 wtmp,: > wtmp 和 > wtmp 是一样效果。

echo "Log files are cleaned up."

exit 0    # 表示全都执行完了,最后输出状态代码 0,表示成功。

时间: 2024-10-24 19:15:08

Shell脚本简单实例(一)的相关文章

使用shell脚本简单模拟对特定文件同时读写操作

使用shell脚本简单模拟对特定文件同时读写操作文件内容的格式:field1    ,       field2    , field3    ,       field4以,为分隔符,但是存在空格. 脚本用法如下: ./check_write_read.sh 10 输出结果: Thu Apr 27 19:59:44 CST 2017:Read operation finished 670 Thu Apr 27 19:59:44 CST 2017:Write operation finished

shell脚本小实例

本文收集了一堆的shell脚本技巧,我说过,我写博客主要是作一些学习笔记,方便自己查阅,所以,我会搞出这么一篇文章,也没有什么不可理解的.关于这些技巧的出处,诶,我也忘了,可能来自theunixschool. commandlinefu.酷勤网和igigo.net,当然了,也有部分是我自己的经验心得,管他呢,进了我的脑子就是我的了. 0. shell 调试 复制代码代码如下: sh -x somefile.sh 在somefile.sh 文件里加上set+x set-x1. 用 && ||

linux shell脚本简单编程

文章转自:http://www.92csz.com/study/linux/14.htm 到现在为止,你明白什么是shell脚本吗?如果明白最好了,不明白也没有关系,相信随着学习的深入你就会越来越了解到底什么是shell脚本.首先它是一个脚本,并不能作为正式的编程语言.因为是跑在linux的shell中,所以叫shell脚本.说白了,shell脚本就是一些命令的集合.举个例子,我想实现这样的操作:1)进入到/tmp/目录:2)列出当前目录中所有的文件名:3)把所有当前的文件拷贝到/root/目录

shell脚本 (实例演示--自己试验下)

shell脚本 查看Linux所支持的shell # cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh 输入/输出设备文件 /dev/stdin 标准输入设备 0 /dev/stdout 标准输出设备 1 /dev/stderr 标准错误输出设备 2 重定向 输出重定向 >   >> 仅能重定向标准输出 2>  

Shell脚本操作实例——绘制菱形

使用Shell脚本完成菱形图形的绘制 PS:该菱形横向最大最好不要超过45 #! /bin/bash read -p "请输入菱形大小:" g for ((i=1;i<=$g;i++)) do for ((j=$g;j>$i;j--)) do echo -n " " done for ((p=1;p<=$i;p++)) do echo -n "* " done echo "" done for ((k=$g-

shell脚本-简单的添加用户并统计总用户数

脚本名称:test4.txt cd /opt mkdir shell ls vi test4.txt 脚本内容如下: #!/bin/bash [ ! $# -eq 1 ] && echo "Args is error" &&  exit 5 id $1 &>/dev/null && echo "User $1 exist" && exit 2 id $1 &>/dev/nul

shell脚本-简单的添加用户

说明:通过脚本添加用户名和密码,如果用户名已存在则放弃添加 脚本名称:test2.txt cd /opt ls mkdir shell ls cd shell ls vi test2.txt 脚本内容如下: #!/bin/bash id $1 &>/dev/null && echo "User $1 exist" && exit 2 id $1 &>/dev/null || useradd $1 id $1 &>

第14章练习,shell脚本编程实例-1

更多内容请点击: Linux学习从入门到打死也不放弃,完全笔记整理(持续更新,求收藏,求点赞~~~~) http://blog.51cto.com/13683480/2095439 1,编写脚本/root/bin/createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之:显示添加的用户的id号等信息 if [ -z "$1" ]; then         echo no argument          exit 1 eli

自动化运维-使用Shell脚本简单实现

回顾: 1   安装etcd [[email protected] ~]# pip install python-etcd                                                       安装etcd软件 2   修改salt-master的配置文件,加配置,并重新启动salt-master [[email protected] ~]# vim /etc/salt/master etcd_pillar_config: etcd.host: 10.0.0