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后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...
随机推荐
- Codeforces126B - Password(KMP)
题目大意 给定一个字符串S,要求你找到一个最长的子串,它既是S的前缀,也是S的后缀,并且在S的内部也出现过(非端点) 题解 KMP的失配函数f[i]的非零值就是前i个字符的一个最长前缀且也是后缀的字符 ...
- PC-改变电脑的CPU,内存,硬盘大小!
如何修改CPU频率及内存容量和硬盘大小 改变电脑的CPU,内存,硬盘大小!--------------------------------------------------------------- ...
- IOS学习笔记38--@class #import辨析 #include
tyle="margin:20px 0px 0px; line-height:26px; font-family:Arial"> #include 区分 #i ...
- Hibernate一张图
- 【Android - 基础】之Animator属性动画
1 概述 在3.0系统之前,Android给我们提供了逐帧动画Frame Animation和补间动画Tween Animation两种动画: 1) 逐帧动画的原理很简单,就是 ...
- 计算内存容量(measure)
$m =gwmi Win32_PhysicalMemory $m|measure -Property capacity #计算 Property 出现次数 $m|measure -Property c ...
- careercup-排序和查找 11.6
11.6 给定M*N矩阵,每一行.每一列都按升序排序,请编写代码找出某元素. 类似leetcode:Search a 2D Matrix 但是与leetcode中这题不同的是下一行的第一个元素不一定大 ...
- 标准I/O之实现细节
在UNIX系统中,标准I/O库最终都要调用文件I/O(read.write等).每个标准I/O流都有一个与其相关联的文件描述符,可以对一个流调用fileno函数以获得其描述符. 注意,fileno不是 ...
- 自定的TableView
一.自定的TableView 有的时候,我们需要vc视图中添加一个表视图,此时在ViewController中使用TableViewController是不可行的这就,因此就要使用自定义的TableV ...
- 通过Html5的postMessage和onMessage方法实现跨域跨文档请求访问
在项目中有应用到不同的子项目,通过不同的二级域名实现相互调用功能.其中一个功能是将播放器作为单独的二级域名的请求接口,其他项目必须根据该二级域名调用播放器.最近需要实现视频播放完毕后的事件触发,调用父 ...