• linux下shell编程示例-获取进程id


    今天初步学习了一下linux下的shell编程,简单记录一下测试用例

    1.编辑shell脚本文件如下:

    #!/bin/bash
    echo "hello bash linux"
    echo "第0个参数:$0"
    echo "第一个参数:$1"
    echo "当前子shell进程:$$"

    #pidarr=`ps x | awk '{print $1}'`
    pidarr=$(ps x | awk '{print $1}')
    echo $pidadd
    for id in $pidarr
    do
    echo "$id"
    done

    2.保存为文件test.bash

    3.使文件具有执行属性,使用以下命令

    chmod +x test.bash

    示例脚本说明:

    (1)第一行的#!/bin/bash 为脚本文件的固定格式,表示有bin目录下的bash来执行

    (2) 第8行的pidarr=$(ps x | awk '{print $1}')表示将ps x | awk '{print $1}' 的结果存入变量pidarr中,其中awk命令是个很有用的命令,详细使用方法可以百度

    改进程序:

    #!/bin/bash
    echo $1

    pidarr=$(ps x | grep $1 | awk '{print $1}')

    arr=($pidarr)
    len=${#arr[*]}
    if [ $len -ge 4 ]
    then
    # 循环kill所有名为$1的进程
    indx=0
    indmax=$[$len-3]
    while [ $indx -lt $indmax ]; do
    kill -9 ${arr[$idx]}
    echo "kill -9 "${arr[$idx]}
    indx=$[$idx + 1]
    done
    else
    echo "该进程不存在"
    fi

    示例2:

    #!/bin/bash

    #==================================================
    # name : getpid.sh
    # brief : get pid accord to process name
    # autor : Monkey.Knight
    #==================================================

    if [ $# -eq 1 ]
    then
    PROC_NAME="$1"
    echo "server name:"${PROC_NAME}
    num=`ps -ef | grep "${PROC_NAME}" | grep -v "grep" | grep -v "bash" | wc -l `
    pidvar=`ps x | grep "${PROC_NAME}" | grep -v "grep" | grep -v "bash" | awk '{print $1}'`
    echo $num
    if [ $num -gt 0 ]
    then
    echo $pidvar
    fi
    else
    echo "语法错误,正确语法如下:"
    echo "getpidparam.sh process_name"
    fi

  • 相关阅读:
    微软面试题
    20个开源项目托管站点推荐
    iis配置好后,解决打开服务器要输入用户名和密码的问题
    C# 调用带输入输出参数的存储过程
    line-height属性总结
    placeholder的字体样式改变,滚动条的颜色改变,ios日期兼容
    表格使用总结
    网页html结构搭建方法总结
    css中的inline-block
    css常用居中
  • 原文地址:https://www.cnblogs.com/knight-monkey/p/knight_201602221827_shell.html
Copyright © 2020-2023  润新知