• 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

  • 相关阅读:
    使用JSONPath
    JSON 返回值JSONPath Syntax
    IntelliJ IDEA 打包Maven 构建的 Java 项目
    JMeter(7) 优化判断返回类型和返回值
    Windows copy
    Windows del
    Windows exit
    Windows netsh
    Windows start
    Windows taskkill
  • 原文地址:https://www.cnblogs.com/knight-monkey/p/knight_201602221827_shell.html
Copyright © 2020-2023  润新知