linux下shell编程示例-获取进程id

摘要:
今天初步学习了一下linux下的shell编程,简单记录一下测试用例1.编辑shell脚本文件如下:#!/bin/bashecho"hellobashlinux"echo"第0个参数:$0"echo"第一个参数:$1"echo"当前子shell进程:$$"#pidarr=`psx|awk'{print$1}'`pidarr=$echo$pidaddforidin$pidarrdoecho"$id"done2.保存为文件test.bash3.使文件具有执行属性,使用以下命令chmod+xtest.bash示例脚本说明:第一行的#!/bin/bash为脚本文件的固定格式,表示有bin目录下的bash来执行第8行的pidarr=$表示将psx|awk'{print$1}'的结果存入变量pidarr中,其中awk命令是个很有用的命令,详细使用方法可以百度改进程序:#!/bin/bashecho$1pidarr=$arr=len=${#arr[*]}if[$len-ge4]then#循环kill所有名为$1的进程indx=0indmax=$[$len-3]while[$indx-lt$indmax];dokill-9${arr[$idx]}echo"kill-9"${arr[$idx]}indx=$[$idx+1]doneelseecho"该进程不存在"fi示例2:#!

今天初步学习了一下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》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇js将阿拉伯数字转换成汉字大写Linux-PAM认证模块下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

重识TP5中模型

创建一个表MODEL,下面展现代码片段: `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `name` varchar(30) NOT NULL DEFAULT '' COMMENT '名称', `pid` int unsigned NOT NULL DEFAULT 0 C...

system函数遇到的问题

这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为是其他的代码影响到这个,或是内核驱动文件系统什么的异常导致,昨天有出现了这个问题,就随手百了一下度,问题出现了,很多人都说system()函数要慎用要少用...

PetaLinux指定Linux configuration文件

PetaLinux新特性,可以指定Linux configuration。Linux configuration文件要放在Linux代码的目录arch/arm64/configs里。使用petalinux-config配置时,指定文件名就可以,不用指定目录。所以最好一起用Linux configuration和Linux external source。...

linux上限值网速、限值带宽

Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制。 Linux流量控制的基本原理如下图所示。 接收包从输入接口(Input Interface)进来后,经过流量限制(Ingress Policing)丢弃不符合规定的数据包,由输入多路分配器(Input De...

青蛙学Linux—sudo和它的配置文件

sudo用于普通用户执行只有超级用户才有权限执行的命令。命令语法如下: sudo [选项] 执行的命令 使用sudo执行命令时,系统会提示用户输入密码,注意,此时输入的密码为当前执行sudo用户的密码,而非root用户的密码。这也是为什么需要sudo命令的原因。使用su命令切换到root时,需要输入的是root用户的密码,这就造成了很大的安全隐患,root...

Linux定时任务(crond)

1、Crond定义   crond是Linux系统中用来定期执行命令或指定程序的一种服务或软件。   (1)linux系统自身定期执行的任务(轮询系统日志、备份数据等)   (2)用户执行的任务(定时更新同步时间、网站数据备份等) 2、Crond命令语法 定时任务的命令是crontab,其守护进程是crond(服务运行的程序) NAME   crontab...