Probleme script

argum2 Messages postés 33 Statut Membre -  
argum2 Messages postés 33 Statut Membre -
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. thesmok Messages postés 21 Statut Membre
     
    je crois que t'as oublié le slash.... ou pas
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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

    0
  3. thesmok Messages postés 21 Statut Membre
     
    Sous linux, c'est readdir, pas read
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      Je suis sous linux.
      read permet de lire une variable saisie au clavier.
      0
  4. argum2 Messages postés 33 Statut Membre
     
    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
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      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
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. argum2 Messages postés 33 Statut Membre
     
    merci a tous et lami20j ^^

    je ne comprends pas encore pourquoi je dois mettre -2 mais au moins ça tourne!!! merci beaucoup
    0
  7. argum2 Messages postés 33 Statut Membre
     
    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
    0
  8. argum2 Messages postés 33 Statut Membre
     
    excusez-moi de up ce topic mais je ne trouve pas la réponse depuis hier....
    0