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下shell编程示例-获取进程id的更多相关文章
- Linux 下shell 编程学习脚手架
linux body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-t ...
- Linux下Shell编程
Linux的shell编程 1.什么是shell? 当一个用户登录Linux系统之后,系统初始化程序init就为每个用户执行一个称为shell(外壳)的程序. shell就是一个命令行解释器,它为用户 ...
- Linux下shell编程实例
1. 推断一文件是不是块或字符设备文件.假设是将其复制到 /dev 文件夹下 read -p "input a file:" filename if [ -b $filename ...
- linux 下Shell编程(四)
for循环应用实例 for 循环可以对一个记录集中地数据依次集中地数据依次进行处理. #!/bin/bash #4.13.sh for clear #看下图区别 for((i=1:i<1 ...
- linux 下 Shell编程(三)
if语句应用实例 if语句可以在程序中实现各种逻辑判断. 用if语句判断并显示文件的信息 可以用test命令和相关的参数来判断文件的属性,然后根据判断结果输出文件的信息. #!/bin/bash #4 ...
- Linux下,如何监控某个进程到底向哪个地址发起了网络调用
Linux下,如何监控某个进程到底向哪个地址发起了网络调用 有时候,有些应用,比如idea,你发起某个操作时,其底层会去请求网络,获取一些数据. 但是不知道,请求了什么地址.举个例子,在idea中,m ...
- .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础
基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...
- Linux 下Shell的学习
1.Shell学习 1.什么是Shell shell是一个命令解析器,在操作系统的最外层,负责和用户对话,将用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果.2.什么是shell脚本 ...
- 06 Linux下Shell介绍
一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...
随机推荐
- Yii 图片FTP批量上传 并生成缩略图
图片批量上传,前台使用 uploadify.swf,这个就不介绍了.这里使用两个扩展,一个是FTP上传的扩展,还有一个是生成缩略图的扩展地址:http://www.yiiframework.com/e ...
- 升级web项目步骤
1.备份数据库(数据库服务器cmd执行,exp pra/pra@ORCL file=c:\name.dmp)2.删除原有表,导入新的备份文件(数据库服务器cmd执行,imp pra/pra@ORCL ...
- 利用Continuous Testing实现Eclipse环境自己主动单元測试
当你Eclipse环境中改动项目中的某个方法时,你可能因为各种原因没有执行单元測试,结果代码提交,悲剧就可能随之而来. 所幸infinitest(http://infinitest.github.io ...
- ListBox获取行字符串
ListBox获取行字符串 关键点 获取ListBox第1行的字符串 获取ListBox第2行的字符串 获取ListBox第n行的字符串 CListBox::GetText int GetText( ...
- uva 10986 - Sending email(最短路Dijkstra)
题目连接:10986 - Sending email 题目大意:给出n,m,s,t,n表示有n个点,m表示有m条边,然后给出m行数据表示m条边,每条边的数据有连接两点的序号以及该边的权值,问说从点s到 ...
- Android 颜色渲染(六) RadialGradient 环形渲染
Android 颜色处理(六) RadialGradient 环形渲染 public RadialGradient(float x, float y, float radius, int[] colo ...
- jquery选择器及效率问题
$('p2') //选择名字 $('.class') //选择class $('#id') //选择id $('#id li') //所有id=”id”标签内的li标签 $(“#id”).find(“ ...
- iostat详解
http://www.penglixun.com/tech/system/use_iostat_analyse_linux_disks.html
- careercup-递归和动态规划 9.7
9.7 编写函数,实现许多图片编辑软件都支持的“填充颜色”功能.给定一个屏幕(以二维数组表示,元素为颜色值).一个点和一个新的颜色值,将新颜色值填入这个点的周围区域,直到原来的颜色值全部改变. 类似l ...
- 标准I/O库之二进制I/O
如果进行二进制I/O操作,那么我们更愿意一次读或写整个结构.因此,提供了下列两个函数以执行二进制I/O操作. #include <stdio.h> size_t fread( void * ...