Dans un script bash, j'ai besoin de contr=F4ler que la valeur taper par
l'utilisateur est comprise dans l'intervalle [-16, 16]
Et franchement, je n'arrive =E0 rien du tout.
S'il y a un pro des expressions r=E9guli=E8res, je le b=E9nis d'avance de b=
ien
vouloir voler =E0 mon secours ! ;-)
Bonjour,<br><br>Je m'arrache les cheveux sur une test: <br><br>Dans un =
script bash, j'ai besoin de contr=F4ler que la valeur taper par l'u=
tilisateur est comprise dans l'intervalle [-16, 16]<br>Et franchement, =
je n'arrive =E0 rien du tout.<br>
<br>S'il y a un pro des expressions r=E9guli=E8res, je le b=E9nis d'=
;avance de bien vouloir voler =E0 mon secours ! ;-)<br><br>Pascal<br>
--e89a8f2359a9b032c104b2013443--
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/CANi7RhT13CUpv3KKQYwbNQKjNSZDsek+ZYWX=b0enGW6dzOwcg@mail.gmail.com
A partir de ta réponse j'ai créé celle-ci qui fonctionne très bien:
if [[ $1 =~ ^[-+]?[0-9]{1}$ ]] || [[ $1 =~ ^[-+]?[1]{1}[0-6]{1}$ ]]; then echo "oui"; else echo "non"; fi exit
Merci encore,
Pascal
Le 18 novembre 2011 16:50, Nicolas Bercher a écrit :
Je ne suis pas certain que ceci soit correct:
if [[ $1 != [-0-9] ]];then
Je ne suis pas un expert, mais je ne saurais dire ce que cela signifie puisque [-0-9] semble être un motif que bash va tenter de faire correspondre aux fichiers présents dans "./". A défaut de trouver que lque chose au niveau de bash, ceci semble robuste:
if ! echo "${1}" | grep "^[+-]?[0-9]+$"; then
ou plus implement cela (après la lecture du man de bash):
if [[ ! $1 =~ ^[-+]?[0-9]+$ ]]; then
Ces deux solutions supportent le signe "+".
Nicolas
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/ ahoo.com
Merci Nicolas,<br><br>A partir de ta réponse j'ai créé celle-ci q ui fonctionne très bien:<br><br>if [[ $1 =~ ^[-+]?[0-9]{1}$ ]] || [[ $ 1 =~ ^[-+]?[1]{1}[0-6]{1}$ ]]; then<br> echo "oui";<br>else< br> echo "non";<br> fi<br>exit<br><br>Merci encore,<br><br>Pascal<br><br><div class="gmail_qu ote">Le 18 novembre 2011 16:50, Nicolas Bercher <span dir="ltr"><<a hr ef="mailto:"></a>></span> a écrit :<br> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1p x #ccc solid;padding-left:1ex;">Je ne suis pas certain que ceci soit correc t:<br> <div class="im"><br> if [[ $1 != [-0-9] ]];then<br> <br> </div>Je ne suis pas un expert, mais je ne saurais dire ce que cela signifi e puisque [-0-9] semble être un motif que bash va tenter de faire corresp ondre aux fichiers présents dans "./". A défaut de trouver qu elque chose au niveau de bash, ceci semble robuste:<br>
<br> if ! echo "${1}" | grep "^[+-]?[0-9]+$"; then<b r> <br> ou plus implement cela (après la lecture du man de bash):<br> <br> if [[ ! $1 =~ ^[-+]?[0-9]+$ ]]; then<br> <br> <br> Ces deux solutions supportent le signe "+".<br> <br> <br> Nicolas<br> <div class="im"><br> <br> --<br> Lisez la FAQ de la liste avant de poser une question :<br> <a href="http://wiki.debian.org/fr/FrenchLists" target="_blank">http:// wiki.debian.org/fr/FrenchLists</a><br> <br> Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe "<br> vers <a href="mailto:">debian- </a><br> En cas de soucis, contactez EN ANGLAIS <a href="mailto: ebian.org"></a><br> </div>Archive: <a href="http://lists.debian.org/1321631423.84063.YahooMai " target="_blank">http://lists.debian.org /</a><br> <br> </blockquote></div><br>
--20cf304349306682b904b206f573--
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/CANi7RhQCfq00_c6Vcm2Z=vn6zuw+
A partir de ta réponse j'ai créé celle-ci qui fonctionne très bien:
if [[ $1 =~ ^[-+]?[0-9]{1}$ ]] || [[ $1 =~ ^[-+]?[1]{1}[0-6]{1}$ ]]; then
echo "oui";
else
echo "non";
fi
exit
Merci encore,
Pascal
Le 18 novembre 2011 16:50, Nicolas Bercher <nbercher@yahoo.fr> a écrit :
Je ne suis pas certain que ceci soit correct:
if [[ $1 != [-0-9] ]];then
Je ne suis pas un expert, mais je ne saurais dire ce que cela signifie
puisque [-0-9] semble être un motif que bash va tenter de faire
correspondre aux fichiers présents dans "./". A défaut de trouver que lque
chose au niveau de bash, ceci semble robuste:
if ! echo "${1}" | grep "^[+-]?[0-9]+$"; then
ou plus implement cela (après la lecture du man de bash):
if [[ ! $1 =~ ^[-+]?[0-9]+$ ]]; then
Ces deux solutions supportent le signe "+".
Nicolas
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive:
http://lists.debian.org/1321631423.84063.YahooMailNeo@web28514.mail.ukl.y ahoo.com
Merci Nicolas,<br><br>A partir de ta réponse j'ai créé celle-ci q ui fonctionne très bien:<br><br>if [[ $1 =~ ^[-+]?[0-9]{1}$ ]] || [[ $ 1 =~ ^[-+]?[1]{1}[0-6]{1}$ ]]; then<br> echo "oui";<br>else< br> echo "non";<br>
fi<br>exit<br><br>Merci encore,<br><br>Pascal<br><br><div class="gmail_qu ote">Le 18 novembre 2011 16:50, Nicolas Bercher <span dir="ltr"><<a hr ef="mailto:nbercher@yahoo.fr">nbercher@yahoo.fr</a>></span> a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1p x #ccc solid;padding-left:1ex;">Je ne suis pas certain que ceci soit correc t:<br>
<div class="im"><br>
if [[ $1 != [-0-9] ]];then<br>
<br>
</div>Je ne suis pas un expert, mais je ne saurais dire ce que cela signifi e puisque [-0-9] semble être un motif que bash va tenter de faire corresp ondre aux fichiers présents dans "./". A défaut de trouver qu elque chose au niveau de bash, ceci semble robuste:<br>
<br>
if ! echo "${1}" | grep "^[+-]?[0-9]+$"; then<b r>
<br>
ou plus implement cela (après la lecture du man de bash):<br>
<br>
if [[ ! $1 =~ ^[-+]?[0-9]+$ ]]; then<br>
<br>
<br>
Ces deux solutions supportent le signe "+".<br>
<br>
<br>
Nicolas<br>
<div class="im"><br>
<br>
--<br>
Lisez la FAQ de la liste avant de poser une question :<br>
<a href="http://wiki.debian.org/fr/FrenchLists" target="_blank">http:// wiki.debian.org/fr/FrenchLists</a><br>
<br>
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe "<br>
vers <a href="mailto:debian-user-french-REQUEST@lists.debian.org">debian- user-french-REQUEST@lists.debian.org</a><br>
En cas de soucis, contactez EN ANGLAIS <a href="mailto:listmaster@lists.d ebian.org">listmaster@lists.debian.org</a><br>
</div>Archive: <a href="http://lists.debian.org/1321631423.84063.YahooMai lNeo@web28514.mail.ukl.yahoo.com" target="_blank">http://lists.debian.org /1321631423.84063.YahooMailNeo@web28514.mail.ukl.yahoo.com</a><br>
<br>
</blockquote></div><br>
--20cf304349306682b904b206f573--
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/CANi7RhQCfq00_c6Vcm2Z=vn6zuw+c2MWdhMVNhYNDMYL2rE4gg@mail.gmail.com
A partir de ta réponse j'ai créé celle-ci qui fonctionne très bien:
if [[ $1 =~ ^[-+]?[0-9]{1}$ ]] || [[ $1 =~ ^[-+]?[1]{1}[0-6]{1}$ ]]; then echo "oui"; else echo "non"; fi exit
Merci encore,
Pascal
Le 18 novembre 2011 16:50, Nicolas Bercher a écrit :
Je ne suis pas certain que ceci soit correct:
if [[ $1 != [-0-9] ]];then
Je ne suis pas un expert, mais je ne saurais dire ce que cela signifie puisque [-0-9] semble être un motif que bash va tenter de faire correspondre aux fichiers présents dans "./". A défaut de trouver que lque chose au niveau de bash, ceci semble robuste:
if ! echo "${1}" | grep "^[+-]?[0-9]+$"; then
ou plus implement cela (après la lecture du man de bash):
if [[ ! $1 =~ ^[-+]?[0-9]+$ ]]; then
Ces deux solutions supportent le signe "+".
Nicolas
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/ ahoo.com
Merci Nicolas,<br><br>A partir de ta réponse j'ai créé celle-ci q ui fonctionne très bien:<br><br>if [[ $1 =~ ^[-+]?[0-9]{1}$ ]] || [[ $ 1 =~ ^[-+]?[1]{1}[0-6]{1}$ ]]; then<br> echo "oui";<br>else< br> echo "non";<br> fi<br>exit<br><br>Merci encore,<br><br>Pascal<br><br><div class="gmail_qu ote">Le 18 novembre 2011 16:50, Nicolas Bercher <span dir="ltr"><<a hr ef="mailto:"></a>></span> a écrit :<br> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1p x #ccc solid;padding-left:1ex;">Je ne suis pas certain que ceci soit correc t:<br> <div class="im"><br> if [[ $1 != [-0-9] ]];then<br> <br> </div>Je ne suis pas un expert, mais je ne saurais dire ce que cela signifi e puisque [-0-9] semble être un motif que bash va tenter de faire corresp ondre aux fichiers présents dans "./". A défaut de trouver qu elque chose au niveau de bash, ceci semble robuste:<br>
<br> if ! echo "${1}" | grep "^[+-]?[0-9]+$"; then<b r> <br> ou plus implement cela (après la lecture du man de bash):<br> <br> if [[ ! $1 =~ ^[-+]?[0-9]+$ ]]; then<br> <br> <br> Ces deux solutions supportent le signe "+".<br> <br> <br> Nicolas<br> <div class="im"><br> <br> --<br> Lisez la FAQ de la liste avant de poser une question :<br> <a href="http://wiki.debian.org/fr/FrenchLists" target="_blank">http:// wiki.debian.org/fr/FrenchLists</a><br> <br> Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe "<br> vers <a href="mailto:">debian- </a><br> En cas de soucis, contactez EN ANGLAIS <a href="mailto: ebian.org"></a><br> </div>Archive: <a href="http://lists.debian.org/1321631423.84063.YahooMai " target="_blank">http://lists.debian.org /</a><br> <br> </blockquote></div><br>
--20cf304349306682b904b206f573--
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/CANi7RhQCfq00_c6Vcm2Z=vn6zuw+
Stéphane Goujet
Le Fri, 18 Nov 2011 19:34:16 +0100, "Jean-Yves F. Barbier" a écrit :
Non, simplement parce que > ou < prend bcp moins de cycles CPU que > > ou =<
Sur quelle architecture ?
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
Le Fri, 18 Nov 2011 19:34:16 +0100,
"Jean-Yves F. Barbier" <12ukwn@gmail.com> a écrit :
Non, simplement parce que > ou < prend bcp moins de cycles CPU que > > ou =<
Sur quelle architecture ?
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20111118201858.4660327e@wanadoo.fr
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20111118203409.1d024041@anubis.defcon1
Et les boucles, câest des sauts inutiles ! Remplacez-les par
du copier-coller. Prenez de bonnes habitudes.
Et, et, etâ¦
Heureusement quâon nâest pas vendredi⦠ah si, tie ns, oupsâ¦
--
Sylvain Sauvage
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/201111182054.57244.Sylvain.L.Sauvage@free.fr
Et les boucles, câest des sauts inutiles ! Remplacez-les par du copier-coller. Prenez de bonnes habitudes.
Et, et, etâ¦
Heureusement quâon nâest pas vendredi⦠ah si, tie ns, oupsâ¦
-- Sylvain Sauvage
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
Stéphane Goujet
Le Fri, 18 Nov 2011 20:34:09 +0100, "Jean-Yves F. Barbier" a écrit :
On Fri, 18 Nov 2011 20:18:58 +0100 Stéphane Goujet wrote: > Le Fri, 18 Nov 2011 19:34:16 +0100, > "Jean-Yves F. Barbier" a écrit : > > Non, simplement parce que > ou < prend bcp moins de cycles CPU > > que >= ou =< > Sur quelle architecture ? Actuellement et autant que je sache, toutes (même si le pipeline permet de réduire artificiellement le Nb de cycles).
Ben, ce n'est pas le cas sur 6809, 8051, 8086 jusqu'à AMD64 et Intel64, ARM, etc., ce qui paraît normal vu qu'il ne s'agit que de tester un ou deux flags après la même opération.
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
Le Fri, 18 Nov 2011 20:34:09 +0100,
"Jean-Yves F. Barbier" <12ukwn@gmail.com> a écrit :
On Fri, 18 Nov 2011 20:18:58 +0100
Stéphane Goujet <stephane.goujet@wanadoo.fr> wrote:
> Le Fri, 18 Nov 2011 19:34:16 +0100,
> "Jean-Yves F. Barbier" <12ukwn@gmail.com> a écrit :
> > Non, simplement parce que > ou < prend bcp moins de cycles CPU
> > que >= ou =<
> Sur quelle architecture ?
Actuellement et autant que je sache, toutes (même si le pipeline
permet de réduire artificiellement le Nb de cycles).
Ben, ce n'est pas le cas sur 6809, 8051, 8086 jusqu'à AMD64 et
Intel64, ARM, etc., ce qui paraît normal vu qu'il ne s'agit que de
tester un ou deux flags après la même opération.
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20111118220205.62517db7@wanadoo.fr
Le Fri, 18 Nov 2011 20:34:09 +0100, "Jean-Yves F. Barbier" a écrit :
On Fri, 18 Nov 2011 20:18:58 +0100 Stéphane Goujet wrote: > Le Fri, 18 Nov 2011 19:34:16 +0100, > "Jean-Yves F. Barbier" a écrit : > > Non, simplement parce que > ou < prend bcp moins de cycles CPU > > que >= ou =< > Sur quelle architecture ? Actuellement et autant que je sache, toutes (même si le pipeline permet de réduire artificiellement le Nb de cycles).
Ben, ce n'est pas le cas sur 6809, 8051, 8086 jusqu'à AMD64 et Intel64, ARM, etc., ce qui paraît normal vu qu'il ne s'agit que de tester un ou deux flags après la même opération.
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
Yves Rutschle
On Fri, Nov 18, 2011 at 07:34:16PM +0100, Jean-Yves F. Barbier wrote:
Non, simplement parce que > ou < prend bcp moins de cycles CPU que >= ou =<
1. On parle de script shell, où l'on jete les cycles CPU par milliers rien que pour s'amuser.
2. C'est faux au moins pour l'architecture ARM, qui sait faire l'un et l'autre, et en signé ou en non signé s'il vous plait.
3. Sur les architectures handicappées, c'est au compilateur de se démerder et de transformer (a >= b) en (a > b-1) si c'est mieux. Rendre du code moins lisible pour pallier à un defaut du compilateur, c'est Mal.
Y.
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
On Fri, Nov 18, 2011 at 07:34:16PM +0100, Jean-Yves F. Barbier wrote:
Non, simplement parce que > ou < prend bcp moins de cycles CPU que >= ou =<
1. On parle de script shell, où l'on jete les cycles CPU par
milliers rien que pour s'amuser.
2. C'est faux au moins pour l'architecture ARM, qui sait
faire l'un et l'autre, et en signé ou en non signé s'il vous
plait.
3. Sur les architectures handicappées, c'est au compilateur
de se démerder et de transformer (a >= b) en (a > b-1) si
c'est mieux. Rendre du code moins lisible pour pallier à un
defaut du compilateur, c'est Mal.
Y.
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20111118210753.GY25494@naryves.com
On Fri, Nov 18, 2011 at 07:34:16PM +0100, Jean-Yves F. Barbier wrote:
Non, simplement parce que > ou < prend bcp moins de cycles CPU que >= ou =<
1. On parle de script shell, où l'on jete les cycles CPU par milliers rien que pour s'amuser.
2. C'est faux au moins pour l'architecture ARM, qui sait faire l'un et l'autre, et en signé ou en non signé s'il vous plait.
3. Sur les architectures handicappées, c'est au compilateur de se démerder et de transformer (a >= b) en (a > b-1) si c'est mieux. Rendre du code moins lisible pour pallier à un defaut du compilateur, c'est Mal.
Y.
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/