在寻找如何在top
控制台中过滤命令时,我找到了答案。
top -c -p $(pgrep -d',' -f string_to_match_in_cmd_line)
它工作完美。
我认为它与命令相同,因为至少我认为pgrep -d ',' -f cmdStr | top -c -p
它们将致力于将输出提供pgrep
给输入。top
但是,正如您所期望的,它返回一个错误top: -p requires argument
他们之间有什么不同?
答案1
不,他们不一样。考虑一下echo
命令。你期待吗
echo hello asleea
和
printf "asleaa\n" | echo hello
生产同样的东西?在这种top ... $(...)
情况下,shell 首先运行 中的内容$(...)
,并将输出放置在运行时的参数列表中top
。
当然top
可以如果您给了它一个需要参数但没有给它的标志,则可以编写它以从 stdin 读取附加值,但这不是它的实现方式。