Forums FUG-FR | |
https://forums.fug-fr.org/cgi-bin/yabb2/YaBB.pl
Divers et varié >> Programmation >> Message erreur script sh https://forums.fug-fr.org/cgi-bin/yabb2/YaBB.pl?num=1148622098 Message started by Marck on 26. May 2006 at 07:41 |
Title: Message erreur script sh Post by Marck on 26. May 2006 at 07:41
Bonjour
Code (]#!/bin/sh echo -n "Souhaitez-vous continuer (O/n): " read ANSWER if [ $ANSWER = "n" ):
Le script ci-dessus fait bien ce que je souhaite, il ne s'arrête que si l'on répond "n" ou "N"... Son seul petit défaut est que, si (et seulement si) on se contente d'appuyer seulement sur "Enter", il affiche: [code]pocket marck % ./forum_script Souhaitez-vous continuer (O/n): [: =: unexpected operator [: =: unexpected operatorOUI[/code] Comment supprimer ces "[: =: unexpected operator" ? J'ai essayé avec une prise en compte des $ANSWER="" mais cela ne semble pas convenir (ou je me suis planté). Merci, Marck PS: pour ceux qui suivent un peu le feuilleton "mon PC reboote tout seul" ; depuis que j'ai tout démonté (et remonté sur une structure en Légo pour avoir tout sous la main) il semble très bien fonctionner... Un petit faux contact ? Une poussière mal placée ? Je vais attendre encore quelques heures / jours avant de tout remettre en place (quoique... cela ne manque pas de charme ainsi). PPS: je poste ma question script dans "Bar" car je ne vois pas vraiment où la poser sinon... |
Title: Re: Message erreur script sh Post by idroxid on 26. May 2006 at 08:59
il faut que tu places ta variable $ANSWER entre guillemets dans le test:
if [ "$ANSWER" = "n" ] || [ $ANSWER = "N" ] ; then |
Title: Re: Message erreur script sh Post by laurent on 26. May 2006 at 09:17
salut, ton mecano plein l'air comme ca y risque pas de chauffer ;D
pour ton script ca attend au moins un caractere d'ou si tu tape direct entre le renvoi de "l'erreur" je pense peut etre rajouter un petit truc ou tu teste si c'est pas n ou N c'est forcement o donc tu force le o quelque soit la touche appuiée differente de n ou N poser de pareil quetion pour un weekend prolongé :) ps: je sais pas ce que tu veut faire mais si on a de gros doigt et qu'on rate n ou N et donc que ca fait oui alors qu'on voulais faire non c'est pas genant? |
Title: Re: Message erreur script sh Post by Marck on 26. May 2006 at 09:41 Quote:
Merci Idroxid j'aime les réponses simples et efficaces comme celle-ci. C'est bon. Quote:
Là c'est juste une confirmation "au cas où"... en principe c'est "oui" et cela ne porte de toute façon pas à de lourdes conséquences donc effectivement tout sauf "n" ou "N" est considéré comme "oui". Merci Marc |
Title: Re: Message erreur script sh Post by laurent on 26. May 2006 at 11:04
a oui c'est vrai en sh faut toujours les " "
bon la que je tiens du monde qui parle de scipt est-ce que quelqu'un aurai un exemple concret pour m'expliquer la diference entre (j'ai pris ton expresion pour exemple marck tu me fera pas de proces pour plagiat hein ;D ) [ "$ANSWER" = "n" ] || [ "$ANSWER" = "N" ] et ca [ "$ANSWER" = "n" -o "$ANSWER" = "N" ] le premier c'est un operateur du shell entre les 2 commandes et le second interne a la commande j'ai du avoir l'explication pour le c il y a fort longtemps mais je me souviens plus (c'est pas beau de viellir les neuronnes fuit top vite) laurent |
Title: Re: Message erreur script sh Post by francis on 26. May 2006 at 11:37
Dans le second cas, il n'y aura qu'un seul process spawne pour evaluer les expressions, alors que l'autre forme en emploira un ou deux selon que la premiere evaluation retourne vrai ou faux.
C'est tout ce que je voie. |
Title: Re: Message erreur script sh Post by idroxid on 26. May 2006 at 13:19 Marck wrote on 26. May 2006 at 09:41:
Maintenant que j'ai le temps, je peux developper un peu plus: Lors du test i f [ $ANSWER = "n" ] || [ $ANSWER = "N" ] ; then si l'utilisateur tape Entrée, la variable ANSWER correspond à la chaîne vide, d'où le test: i f [ = "n" ] échoue bien sur Si tu entoures avec des guillemets, le test devient: i f [ "" = "n" ] le test est valide. |
Forums FUG-FR » Powered by YaBB 2.5.2! YaBB Forum Software © 2000-2025. All Rights Reserved. |