Probleme script

Fermé
argum2 Messages postés 32 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 16 janvier 2010 - 4 nov. 2009 à 19:26
argum2 Messages postés 32 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 16 janvier 2010 - 5 nov. 2009 à 21:28
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
A voir également:

7 réponses

thesmok Messages postés 17 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 11 octobre 2010
4 nov. 2009 à 19:29
je crois que t'as oublié le slash.... ou pas
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
4 nov. 2009 à 19:36
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
thesmok Messages postés 17 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 11 octobre 2010
4 nov. 2009 à 19:47
Sous linux, c'est readdir, pas read
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
4 nov. 2009 à 19:49
Salut,

Je suis sous linux.
read permet de lire une variable saisie au clavier.
0
argum2 Messages postés 32 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 16 janvier 2010
4 nov. 2009 à 20:18
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
4 nov. 2009 à 20:25
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

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

Posez votre question
argum2 Messages postés 32 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 16 janvier 2010
4 nov. 2009 à 20:33
merci a tous et lami20j ^^

je ne comprends pas encore pourquoi je dois mettre -2 mais au moins ça tourne!!! merci beaucoup
0
argum2 Messages postés 32 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 16 janvier 2010
4 nov. 2009 à 23:08
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
argum2 Messages postés 32 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 16 janvier 2010
5 nov. 2009 à 21:28
excusez-moi de up ce topic mais je ne trouve pas la réponse depuis hier....
0