Récupérer le NICE courant d'un shell

Résolu/Fermé
toube - 11 mars 2009 à 13:02
toube6 Messages postés 4 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 12 mars 2009 - 12 mars 2009 à 12:38
Bonjour,
je suis débutant en Unix et je voudrais bien savoir comment récupérer la valeur NICE du shell courant (quel qu'il soit) et la garder dans une variable. Le but est de comparer cette valeur à ceux de tous les autres processus et d'en afficher que ceux qui ont une valeur NICE plus grande:
La commande "ps -axl" me donne tous les champs dont j'ai besoin.
je contate que "NI" colonne 8 (sous LINUX UBUNTU que j'utilise) me retrace bien tous les nices.
le ice courrant serait celui de la ligne 2 colonne 8? si oui comment récupérer cette valeur?

Merci de m'aider.

8 réponses

dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
11 mars 2009 à 13:06
hello
la commande nice permet d'afficher ou de changer cette valeur
man nice
1
dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
11 mars 2009 à 13:30
NAME
nice - run a program with modified scheduling priority
SYNOPSIS
nice [OPTION] [COMMAND [ARG]...]
DESCRIPTION
Run COMMAND with an adjusted scheduling priority. With no COMMAND, print the current scheduling priority.

NICE=$(nice)
1
nice permet de exécute la commande en argument en réduisant sa priorité de l'indice donnée en paramètre.
Ce que je voudrais c'est récpérer la valeur NICE du shell courant dans une variable.
Merci
0
toube6 Messages postés 4 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 12 mars 2009
11 mars 2009 à 14:03
Merci bien pour la réaction;
quand je fais
NICE=$(nice) je reçois le message "Illegal variable name."

pas que la variable "NICE" se confonde avec une autre variable connue, j'ai essayé de changer de nom de variable mais j'obtient le même message.
Dans le manuel, il disent que l'utilisation de "nice " sans parametres ajoute une certaine valeur par défaut au nice courant; ça je veux bien. Mais ce nice courant c'est celui que je voudrai bien extraire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
11 mars 2009 à 14:15
possible que cela change entre versions
quel shell utilises tu ?
essaye
MYNI=`nice`
0
toube6 Messages postés 4 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 12 mars 2009
12 mars 2009 à 11:21
Voilà j'ai mis du temps à tépondreparce que j'essayais d'avoir une solution.
Comme shell j'utilises csh.
J'ai essayé ta commande mais elle ne marche pas.

Par contre pourrais tu m'indiquer comment récipérer la valeur d'une cellule d'un tableau?

Pour récupérer la colonne c facile avec la commande "awk".

Merci
0
dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
12 mars 2009 à 11:32
en csh c'est
setenv MYNI `nice`
pour récupérer la colonne 8 avec awk
commande | awk '{print $8}'
0
toube6 Messages postés 4 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 12 mars 2009
12 mars 2009 à 11:43
Merci bien pour ton aide dubcek.

Une remarque:
La variable MYNI telle que dfinie ne contient rien quand je l'affiche est ce normal?
Ensuite pour récupérer la valeur de la colonne ça je l'avais déjà compris; mais s'il faut combiner colonne + ligne pour avoir la valeur de la cellule, comment tu fais?

Merci
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896 > toube6 Messages postés 4 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 12 mars 2009
12 mars 2009 à 12:18
commande | awk '/motif/ {print $8}'
0
dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
12 mars 2009 à 12:16
MYNI contient le résultat de l'exécution de nice. si interactivement nice retourne 27, MYNI vaut 27, si nice ne retourne rien alors MYNI est vide

awk 'NR==3 {print $8}' retourne la colonne 8 de la ligne 3
awk '/text/ {print $8}' retourne la colonne 8 des lignes qui contiennent texte
0
toube6 Messages postés 4 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 12 mars 2009
12 mars 2009 à 12:38
Merci bien à toi dubcek.
Problème résolu.

Many thanks
0