Probleme script

Bonsoir à tous,

j'ai un souci, je découvre les scripts sous linux et je dois faire un script qui me donne le nombre de bash ouvert par un utilisateur. Le souci est que lorsque je lance mon script il m'en compte un de plus que prévu car en lançant le script ça ouvre un bash supplementaire. Donc je voudrais le retirer dans mon script. J'ai alors créé ce script

read a
var = ps -u$a | grep -c bash
let var = $var - 1
echo $var

et lorsque je lance le script j'ai 2 erreurs

scr1: line 2: var : commande introuvable
0
scr1: line 3: let: =: erreur de syntaxe : opérande attendue (error token is "=")

où scr1 est le nom de mon script . Si quelqu'un a la solution ça serait super ^^ et si en plus quelqu'un pouvait me proposer un lien pour en apprendre plus sur tout ceci :) merci d'avance
Configuration: Linux
Firefox 3.0.15

7 réponses

  1. excusez-moi de up ce topic mais je ne trouve pas la réponse depuis hier....
    1. je reviens vous voir car j'ai encore un souci qui je pense est lié au précédent.

      je m'occupe de creer un script qui me permet de modifier mon PATH pour y inclure mon rep courant et le rep de mes scripts comme ceci :

      [quote]
      var=$PATH

      if [ $var != $(cat /home/yardras/workspace/abc/script/.demarrage_path) ]
      then
      echo PATH different
      echo en attente de modification
      PATH=$(cat .demarrage_path)
      export PATH

      echo PATH modifié
      else
      echo PATH identique
      fi
      [\quote]

      puis je cree un autre script qui me remet mon PATH originel :

      [quote]
      PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
      export PATH
      echo PATH réinitialisé
      [\quote]

      quand j'execute alors en tapant " . nom_script1" le PATH change mais quand je fais ensuite "nom_script2" le PATH ne change pas. Je pense qu'il n'exporte le PATH que dans les sous-bash lié au bash qui s'ouvre quand j'execute de la 2eme façon.

      si je suis assez clair, cela veut dire qu'une execution en "nom_script" se fait a travers un autre bash et l'exportation du PATH ne se fait que pour celui-ci alors qu'une execution en ". nom_script" se fait <autrement> .

      et donc je ne comprends pas pourquoi et aussi comment regler le probleme.

      si quelqu'un peut m'expliquer ;) merci d'avance
      1. merci a tous et lami20j ^^

        je ne comprends pas encore pourquoi je dois mettre -2 mais au moins ça tourne!!! merci beaucoup
        1. merci beaucoup ça m'a grandement aidé!!

          j'ai trouvé ceci donc :

          read a
          var=`ps -u $a | grep -icw bash`
          var=$(($var-2))
          echo $var

          et je suis obligé de mettre 2 car ... (en fait j'en sais rien ... ) si quelqu'un a une idée
          1. Modérateur
            Re,

            Oups, j'ai oublié pour la capture, mais je vois que tu as trouvé.
            Tu peux utiliser aussi $(commande) ou lieu de $``

            read a
            var=$(ps -u $a | grep -icw bash)
            var=$(($var-2))
            echo $var
        2. Sous linux, c'est readdir, pas read
          1. Modérateur
            Salut,

            Je suis sous linux.
            read permet de lire une variable saisie au clavier.
        3. Modérateur
          Salut,

          Attention, avant et après le signe égal il n'y a pas des espaces

          read a
          var=ps -u $a | grep -c bash
          var=$(($var - 1))
          echo $var