Page 1 sur 1

[Shell bash] besoin d'aide pour un shell de connexion [résolu]

Publié : mer. 18 mai 2016, 18:56
par falke
bonjour,

j'ai actuellement le shell de connection suivant :

contenu du .bashrc

Code : Tout sélectionner

if [ "$LOGNAME" != "toto" -o "$LOGNAME" != "tata" ] ;

        then

        exec application 

fi
si l'utilisateur qui se connecte est autre que toto ou tata alors une application se lance par défaut (dans laquelle les utisateurs travaillent)

si c'est toto ou tata qui se connecte alors on tombe sur l'invite et on peut lancer des commandes.

Pb : j'aimerais ajouter un troisième utilisateur (tutu) qui s'il se connecte tomberait sur l'invite,

Code : Tout sélectionner

if [ "$LOGNAME" != "toto" -o "$LOGNAME" != "tata" -o "$LOGNAME" != "tutu"] ;

        then

        exec application 

fi
le souci c'est que le shell me renvoie too many arguments : il n'accepte pas trois conditions.

J'aimerais bien contourner le pb mais je ne sais pas comment ..

Pourriez vous m'aider

Ps : je ne peux formuler la condition que par la négative , car je sais quels utilisateurs doivent accéder à l'invite mais je ne peux présager des noms d'utilisateurs qui ont besoin d'accéder à l'appli
merci

Re: [Shell bash] besoin d'aide pour un shell de connection

Publié : mer. 18 mai 2016, 19:12
par karhu
Si tu utilisais un case à la place du if.

Code : Tout sélectionner

case $LOGNAME in
  toto) ;;
  tata) ;;
  tutu) ;;
  *)	exec application ;;
esac

Re: [Shell bash] besoin d'aide pour un shell de connection

Publié : mer. 18 mai 2016, 19:13
par falke
purée ouais,

j'ai oublié ce *)

j'essaie demain

Re: [Shell bash] besoin d'aide pour un shell de connection

Publié : mer. 18 mai 2016, 19:26
par Xorg
Ou encore la forme bien lourde :

Code : Tout sélectionner

if [[ "$LOGNAME" != "toto" ]] || [[ "$LOGNAME" != "tata" ]] || [[ "$LOGNAME" != "tutu" ]]; then
Mais c'est vrai qu'au plus tu vas ajouter des utilisateurs, au plus le case s'impose. :mrgreen:

Re: [Shell bash] besoin d'aide pour un shell de connection

Publié : jeu. 19 mai 2016, 11:39
par falke
merci à tous les deux,

la solution de karhu fonctionne nickel