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

Résolu
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.
Configuration: Linux
Firefox 3.0.3

8 réponses

  1. Contributeur
    hello
    la commande nice permet d'afficher ou de changer cette valeur
    man nice
    1
    1. Contributeur
      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
      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
        1. 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
          1. Contributeur
            possible que cela change entre versions
            quel shell utilises tu ?
            essaye
            MYNI=`nice`
            0
            1. 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
          2. Contributeur
            en csh c'est
            setenv MYNI `nice`
            pour récupérer la colonne 8 avec awk
            commande | awk '{print $8}'
            0
            1. 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
            2. Modérateur
              @toube6
              commande | awk '/motif/ {print $8}'
              0
          3. Contributeur
            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
            1. Merci bien à toi dubcek.
              Problème résolu.

              Many thanks
              0