编写一个shell脚本程序.功能是输入一个数字,给出系统中以该数字为pid的进程详情,并输出到一个文件里

编写一个shell脚本程序.功能是输入一个数字,给出系统中以该数字为pid的进程详情,并输出到一个文件里,第1张

#!/bin/sh

#使用read命令读取用户输入的数字,赋值给变量pid

read -p "Input PID: " pid

#ps命令列出所有进程,awk打印第一行标题行及进程号为pid的进程详情,输出到文件output

ps aux | awk -v n=$pid 'NR==1||$2==n{print}' >output

awk命令中,NR为内部变量,表示Number of Record,行号。$2表示第二个字段(PID)。

@echo off

for /f "tokens=2 delims= " %%a in('tasklist^|find /i "RavMonDexe"') do (

taskkill /f /pid %%a

ntsd -c q -p %%a

)

上面这个能自动查找RavMonDexe进程的PID,并通过2种方式结束此进程

很简单直接调用你配置的PID的这三个值对应的DB地址了,不过要注意,I和D是ms为单位,你在上位机调用这三个地址时,你要定义这两个数据为无符号32位数,然后在你建这变量时标定一下你这个变量,0对应线性值0,100对应1000000,就可以直接用了,那样你输100时,填进PID的时候就是1000000,不标定的话,你输进去100时,填进PID就太小了,你不可能在输入窗口填个1000000这种大的数值吧,标定一下,直接用。

这个只能找出子进程:

read -p "请输入一个进程号:" value

wym=`ps -ef|sed -e 's/[ \t][ \t]/|/g'|cut -d "|" -f "2-4"|grep "|${value}|"|cut -d "|" -f "1"`

echo "它的子进程:" 

echo "$wym"

这个可以找出所有的后代进程:通过递归调用本身函数。

read -p "输入一个进程号:" p

function mj(){

    pid=`ps -ef|sed 's/  /|/g'|cut -d "|" -f 2-3|grep "|$1$"`

for ppid in $pid;do

num=`echo "$ppid"|sed "s/|$1//g"`

echo "$num"

mj $num

done

}

mj $p

fork,source和exec运行脚本时的差异 使用 fork 方式运行 script 时, 就是让 shell(parent process) 产生一个 child process 去执行该 script, 当 child process 结束后, 会返回 parent process, 但 parent process 的环境是不会因 child process 的改变而改变的source 使用 source 方式运行 script 时, 就是让 script 在当前 process 内执行, 而不是产生一个 child process 来执行 由于所有执行结果均于当前 process 内完成, 若 script 的环境有所改变, 当然也会改变当前 process 环境了exec 使用 exec 方式运行script时, 它和 source 一样, 也是让 script 在当前process内执行, 但是 process 内的原代码剩下部分将被终止 同样, process 内的环境随script 改变而改变结论:通常如果我们执行时,都是默认为fork的。大家可以通过pstree命令看看关于父子进程的关系。如上,如果想让父进程得到子进程的环境变量,就是source方式了1sh的脚本[sql]#!/bin/bash A=B echo PID for 1sh before exec/source/fork:$$ export A echo 1sh: /$A is $A case $1 in exec) echo using exe exec /2sh ;; source) echo using source /2sh ;; ) echo using fork by default /2sh ;; esac echo PID for 1sh after exec/source/fork:$$ echo 1sh: /$A is $A 2sh的脚本[sql]#!/bin/bash echo PID for 2sh: $$ echo 2sh get /$A=$A from 1sh A=C export A echo 2sh: /$A is $A 3 实验31 fork[sql]

以上就是关于编写一个shell脚本程序.功能是输入一个数字,给出系统中以该数字为pid的进程详情,并输出到一个文件里全部的内容,包括:编写一个shell脚本程序.功能是输入一个数字,给出系统中以该数字为pid的进程详情,并输出到一个文件里、高手回答 弄个批处理 自动获取PID 结束进程、wincc怎么用c脚本写pid等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9580232.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存