gpt4 book ai didi

Bash 通用 "ps aux"按严格名称处理

转载 作者:行者123 更新时间:2023-11-29 09:24:10 29 4
gpt4 key购买 nike

我试图让 ps aux 命令只列出真正的 ssh-agent 进程。我注意到在某些发行版上,我出现了不需要的进程,例如命令颜色等。我需要这样做,因为我需要确保真正的 ssh-agent 进程在脚本中运行(不用麻烦,我已经有一个循环...)。

所以我发现我需要在我的测试例程中使用类似的东西:

#!/bin/bash
ps aux | grep ssh-agent | grep -v grep | awk '{print $12}'

我的问题是:awk $12 是否可以在使用任何 bash 版本的 bash 的任何 unix/linux 环境上运行?

此外,如果我删除“grep -v grep”并执行此操作:

ps aux | grep ssh-agent | awk '{print $12}'

输出是:

ssh-agent
ssh-agent

现在:

ps aux | grep ssh-agent

输出是:

foo 18153478  0.0  0.0  536  844      - A      Apr 25  0:00 ssh-agent
foo 31260886 0.0 0.0 252 264 pts/0 A 22:38:41 0:00 grep ssh-agent

这意味着,“grep ssh-agent”之间的空格被 awk 命令解释为分隔符。有什么可以克服的吗?我已经尝试过使用制表符分隔符,但事实并非如此。命令的分隔符似乎是简单的“空格”字符。是否可以为“ps”命令输出强制使用制表符分隔符?

有什么想法吗?

最佳答案

好吧,我想我找到了,非常简单直接:

ps -e -o pid,comm | grep ssh-agent

工作得很好。

在这里找到答案:https://unix.stackexchange.com/questions/22892/how-do-use-awk-along-with-a-command-to-show-the-process-id-with-the-ps-command/22895#22895

并用 | 改编grep ssh 代理

也由 Martin 建议。感谢大家分享您的经验!

关于Bash 通用 "ps aux"按严格名称处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16472509/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com