Chinaunix首页 | 论坛 | 博客
  • 博客访问: 551359
  • 博文数量: 48
  • 博客积分: 1249
  • 博客等级: 中尉
  • 技术积分: 1926
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-04 10:22
文章存档

2012年(3)

2011年(45)

分类: Delphi

2011-12-15 04:26:07

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

在工作中遇到的问题,此nginx配置脚本我在googel下载下来的,实际复制贴貼到服务器中运行时发现前面都有 001-100的行标识符,外带空格,影响运行和美观啊;本来想一行行删除,后来不禁自己也鄙视自己:这也太没技术含量了吧?具体解决方法如下:①首先在 vim里删除所有行首数字,:%s/^[0-9][0-9]* // ;②然后再删除所有行首空字符,sed -i 's/^[[:space:]]*//' nginxd.sh 解决问题,整个nginxd.sh脚本如下,有兴趣的朋友也拿着练下手。

001    #!/bin/sh
002     
003    # source function library
004    . /etc/rc.d/init.d/functions
005     
006    # Source networking configuration.
007    . /etc/sysconfig/network
008     
009    # Check that networking is up.
010    [ ${NETWORKING} = "no" ] && exit 0
011     
012    RETVAL=0
013    prog="nginx"
014     
015    nginxDir=/usr/local/nginx
016    nginxd=$nginxDir/sbin/nginx
017    nginxConf=$nginxDir/conf/nginx.conf
018    nginxPid=$nginxDir/nginx.pid
019     
020    nginx_check()
021    {
022        if [[ -e $nginxPid ]]; then
023            ps aux |grep -v grep |grep -q nginx
024            if (( $? == 0 )); then
025                echo "$prog already running..."
026                exit 1
027            else
028                rm -rf $nginxPid &> /dev/null
029            fi
030        fi
031    }
032     
033    start()
034    {
035        nginx_check
036        if (( $? != 0 )); then
037            true
038        else
039            echo -n $"Starting $prog:"
040            daemon $nginxd -c $nginxConf
041            RETVAL=$?
042            echo
043            [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
044            return $RETVAL
045        fi
046    }
047     
048    stop()
049    {
050        echo -n $"Stopping $prog:"
051        killproc $nginxd
052        RETVAL=$?
053        echo
054        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx $nginxPid
055    }
056     
057    reload()
058    {
059        echo -n $"Reloading $prog:"
060        killproc $nginxd -HUP
061        RETVAL=$?
062        echo
063    }
064     
065    monitor()
066    {
067        status $prog &> /dev/null
068        if (( $? == 0 )); then
069            RETVAL=0
070        else
071            RETVAL=7
072        fi
073    }
074     
075    case "$1" in
076            start)
077                    start
078                    ;;
079            stop)
080                    stop
081                    ;;
082            restart)
083                    stop
084                    start
085                    ;;
086            reload)
087                    reload
088                    ;;
089            status)
090                    status $prog
091                    RETVAL=$?
092                    ;;
093            monitor)
094                    monitor
095                    ;;
096            *)
097                    echo $"Usage: $0 {start|stop|restart|reload|status|monitor}"
098                    RETVAL=1
099    esac
100    exit $RETVAL

另注:这个文件我找得比较简单,后来我发现用sed -i 's/[0-9]* //g' nginxd.sh就满足我的需求了,希望大家找下比较难的脚本测试~

阅读(3162) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

leixiandeng2014-07-03 09:41:56

我觉得,如果只是去除前面的编号可以加一个托字符,如:sed -i 's/^[0-9]* //g' nginxd.sh
不然你的第10行,会出现问题,exit 0 ,会变成 exit0.