小编hfo*_*rat的帖子

有没有办法在 shell 脚本或函数中绕过管道?

我想写一个小包装器,ps这样无论选项是什么,或者如果我 grep 结果,我都可以得到输出的第一行,ps告诉我列是什么。例如, 的输出ps_wrapper -aux | grep thing将类似于:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
name       33925  1.0  0.0   9972  5528 pts/0    Ss   19:34   0:00 /bin/thing
Run Code Online (Sandbox Code Playgroud)

我试着看看是否tee有用,并尝试了类似的东西

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
name       33925  1.0  0.0   9972  5528 pts/0    Ss   19:34   0:00 /bin/thing
Run Code Online (Sandbox Code Playgroud)

但我很快意识到,当然,即使我“手动”写入/dev/stdout,它仍然会通过管道传输到grep

我想打印我正在运行的实际命令的第一行,因为打印的列ps可能会根据使用的选项而变化。

我正在使用 zsh,但如果有更合适的工具,我不介意使用其他工具。

感谢您的阅读。

shell zsh ps shell-script

4
推荐指数
1
解决办法
1016
查看次数

标签 统计

ps ×1

shell ×1

shell-script ×1

zsh ×1