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

  • 相关阅读:
    linux之scp
    Supervisor之浅谈
    Linux 命令之 2>&1 &
    python多线程实现异步
    python之多进程demo1
    二分查找(python)
    awk命令之小结1
    修改文件权限之chmod
    处理日期数据
    stack unstack pivot 数据的透视
  • 原文地址:https://www.cnblogs.com/knight-monkey/p/knight_201602221827_shell.html
Copyright © 2011-2022 走看看