2017-10-10 54 views
1

现在我有一个任务,要求我排除我的当前用户名在顶部输出。我发现放$ USER允许我用它来过滤只有我的用户名,但是添加一个!它不会让我做任何事:顶部:组合!和一个环境变量

top -U !$USER 

我不能呼应,并找出$ USER是什么,所以我假设它是命令的一部分。有人能告诉我我应该在这里做什么,因为我整夜搜索了一下,没有发现我在找什么。

另外:我必须排除root以及如何将一个选项中的多个参数?

+0

1.感叹号在某些(ALL?)壳保留字,所以你需要逃避它。 2.我不认为你可以把多个用户名放在顶部,但在顶部使用'grep'。 –

回答

1

你已经做了正确的,但版本很重要。 $USER将当前用户名称存储为环境变量。 请检查wetther top命令版本是否高于v3.2.0。

正确的答案是:

$ top -U \!$USER (introduced in top v3.2.9?) 

man top-U选项:

Prepending an exclamation point ('!') to the user id or name 
instructs top to display only processes with users not match- 
ing the one provided. 
+0

感谢您的回应;我试过这个,但它不起作用。另一个人说逃跑的工作虽然;基本上不得不在单引号周围包裹感叹号才能起作用。我必须在可能具有较旧shell版本的学校服务器上工作,所以就是这样。 – ejabno