需要帮助在shell脚本中查找PID

时间:2016-08-09 15:56:38

标签: linux bash sed

我是编写代码的新手。为了获得进程ID,我得到了下面的代码,但是我无法理解下面的命令究竟是做什么的,请你解释一下。

for PID in `ps -u ${instuser} -o pid,args |
grep "\-classpath :$path" | grep -v grep | sed 's/^ *//g' | cut -f1 -d' '`

特别是我无法理解为什么他们使用了pid,args和sed命令。

你能帮我一下吗?

2 个答案:

答案 0 :(得分:1)

ps命令的-o选项控制输出的显示方式,如手册所示:

  

-o
格式用户定义的格式。 format是一个以空格分隔或以逗号分隔的列表形式的单个参数,它提供了一种方法   指定单个输出列。

sed命令

sed 's/^ *//g'

修剪输出开头的空格。

答案 1 :(得分:0)

该命令基本上是为linux用户搜索所有进程。变量$ {instuser}代表用户。

-o选项是格式化选项。该命令使用了pid(processid)和args,它是用于启动进程的完整参数集。

grep用于过滤和显示参数列表中具有“类路径”的进程。

grep -v grep用于删除运行grep命令的进程。

sed用于将所有文本替换为null。在这种情况下,您将丢弃所有以空格开头的地方。 ^用于标识开头并用null替换它。

cut用于获取第一个字段-f1,它是进程ID。

相关问题