博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下shell编程示例-获取进程id
阅读量:5140 次
发布时间:2019-06-13

本文共 1395 字,大约阅读时间需要 4 分钟。

今天初步学习了一下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

 

转载于:https://www.cnblogs.com/knight-monkey/p/knight_201602221827_shell.html

你可能感兴趣的文章
python基础学习第二天
查看>>
java可重入锁reentrantlock
查看>>
浅谈卷积神经网络及matlab实现
查看>>
解决ajax请求cors跨域问题
查看>>
《收获,不止Oracle》pdf
查看>>
LinkedList<E>源码分析
查看>>
Real-Time Rendering 笔记
查看>>
如何理解HTML结构的语义化
查看>>
Activity之间的跳转:
查看>>
实验四2
查看>>
Android现学现用第十一天
查看>>
多路复用
查看>>
Python数据可视化之Pygal(雷达图)
查看>>
Java学习笔记--字符串和文件IO
查看>>
转 Silverlight开发历程—(画刷与着色之线性渐变画刷)
查看>>
SQL语法(3)
查看>>
在js在添版本号
查看>>
sublime3
查看>>
Exception Type: IntegrityError 数据完整性错误
查看>>
Nuget:Newtonsoft.Json
查看>>