Linux shell实战(ipcs工具)

#!/bin/bash
if [ $# -lt 1 -o $# -gt 2 ]
then
    echo "参数个数不正确!"
    exit -1
fi

WHOAIM=`whoami`

function release
{
    if [ $1 -le $2 ]
        then
                for id in `ipcs | sed -n $1,$2p | grep "${WHOAMI}" | \
                awk '{print $2}'`
        do
            ipcrm $3 $id
        done
        fi
}

function releasebyid
{
    ipcrm $1 $2
}


function judgetype
{
    case $1 in
    "shm")
        start=$((`ipcs | sed -n '/shmid/='`+1))
        end=$((`ipcs | sed -n '/Semaphore/='`-1))
        if [ $# -eq 2 ]
        then
            releasebyid "-m" $2
        else
            release $start $end "-m"
        fi
        ;;
    "sem")
        start=$((`ipcs | sed -n '/semid/='`+1))
        end=$((`ipcs | sed -n '/Message/='`-1))
        if [ $# -eq 2 ]
        then
            releasebyid "-s" $2
        else
            release $start $end "-s"
        fi
        ;;
    "msg")
        start=$((`ipcs | sed -n '/msqid/='`+1))
        end=$((`ipcs | sed -n '$='`-1))
        if [ $# -eq 2 ]
        then
            releasebyid "-q" $2
        else
        release $start $end "-q"
        fi
        ;;
    *)
        echo "错误的参数 [shm] [sem] [msg] [all]"
        exit 0
        ;;
    esac
}

if [ "$1" = "all" ]
then
    if [ $# -eq 2 ]
    then
        echo "[all]不可以有第二个参数!"
        exit 0
    else
        judgetype "shm"
        judgetype "sem"
        judgetype "msg"
    fi
else
    judgetype $1 $2
fi

echo "shell执行成功!"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值