2017-10-10 5 views
1

À l'heure actuelle, j'ai une affectation qui me demande d'exclure mon nom d'utilisateur actuel dans une sortie supérieure. J'ai trouvé mettre $ USER me permet de l'utiliser pour filtrer seulement mon nom d'utilisateur, mais en ajoutant un! à elle ne me laisse pas faire quoi que ce soit:top: Combinaison! et une variable d'environnement

top -U !$USER 

Je ne suis pas autorisé à faire écho et savoir ce que $ USER est, donc je suppose qu'il doit faire partie de la commande. Quelqu'un peut-il me dire ce que je suis censé faire ici parce que j'ai googlé toute la nuit et n'ai rien trouvé sur ce que je cherche.

Également: Je dois aussi exclure la racine, alors comment peut-on mettre plusieurs arguments dans une option?

+0

1. Exclamation mark est réservé mot dans quelques coquilles (tous?), Vous avez donc besoin d'y échapper. 2. Je ne pense pas que vous pouvez mettre plus d'un nom d'utilisateur à 'top' mais utiliser' grep' après 'top'. –

Répondre

1

Vous avez fait le bon choix, mais la version compte. $USER stocke le nom d'utilisateur actuel en tant que variable d'environnement. Veuillez vérifier si la version supérieure de la commande est supérieure à v3.2.0.

La bonne réponse est:

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

man top pour -U Option:

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

Merci pour la réponse; J'ai essayé mais ça ne marche pas. Ce que l'autre a dit à propos de l'évasion a fonctionné bien; fondamentalement a dû envelopper le point d'exclamation autour des guillemets simples pour que cela fonctionne. Je dois travailler sur un serveur d'école qui a probablement une ancienne version shell, donc il y a ça. – ejabno