zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    IntelliJ IDEA 14.03 java 中文文本处理中的编码格式设置
    应聘感悟
    STL string分析
    CUDA SDK VolumeRender 分析 (1)
    BSP
    CUDA SDK VolumeRender 分析 (3)
    CUDA SDK VolumeRender 分析 (2)
    Windows软件发布时遇到的一些问题
    Ten Commandments of Egoless Programming (转载)
    复习下光照知识
  • 原文地址:https://www.cnblogs.com/knight-monkey/p/knight_201602221827_shell.html
Copyright © 2011-2022 走看看