OVH Cloud OVH Cloud

bash: woody à sarge pour info

8 réponses
Avatar
François Boisson
Un changement important en passant de woody =E0 sarge, le bash sous woody
donne `seq 4 1` qui renvoit 4,3,2 et 1. Sous sarge, =E7a ne renvoit rien
du tout. R=E9sultat, une batterie de script =E0 revoir...


Fran=E7ois Boisson

8 réponses

Avatar
Jean-Yves LENHOF
Le vendredi 11 février 2005 à 18:26 +0100, François Boisson a écrit :
Un changement important en passant de woody à sarge, le bash sous woody
donne `seq 4 1` qui renvoit 4,3,2 et 1. Sous sarge, ça ne renvoit rien
du tout. Résultat, une batterie de script à revoir...


François Boisson



Je n'ai plus de woody pour regarder néanmoins pour te mettre sur la
piste voilà quelques éléments :

seq est une commande contenue ds coreutils... donc tu aurais le même
problème si tu utilisais sh, zsh, dash, tcsh ou je ne sais quel shell

:~$ dpkg -S /usr/bin/seq
coreutils: /usr/bin/seq
:~$

:~$ seq 1 4
1
2
3
4
:~$

:~$ seq 1 1 4
1
2
3
4
:~$


:~$ seq 4 -1 1
4
3
2
1
:~$

Ce qui correspond plutôt pas mal au man de seq dans sarge...

Cdlt,

JYL


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
François Boisson a écrit, vendredi 11 février 2005, à 18:26 :
Un changement important en passant de woody à sarge, le bash sous woody
donne `seq 4 1` qui renvoit 4,3,2 et 1. Sous sarge, ça ne renvoit rien
du tout. Résultat, une batterie de script à revoir...



Tu peux aussi avec bash te passer de l'appel à seq

for((nB;n>33;n--));do echo $n;done
42
41
40
39
38
37
36
35
34

--
Jacques L'helgoualc'h


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
fra-duf-no-spam
Le 12825ième jour après Epoch,
Jacques L'helgoualc'h écrivait:

François Boisson a écrit, vendredi 11 février 2005, à 18:26 :
Un changement important en passant de woody à sarge, le bash sous woody
donne `seq 4 1` qui renvoit 4,3,2 et 1. Sous sarge, ça ne renvoit rien
du tout. Résultat, une batterie de script à revoir...



Tu peux aussi avec bash te passer de l'appel à seq

for((nB;n>33;n--));do echo $n;done
42
41
40
39
38
37
36
35
34



Ou alors utiliser la syntaxe ad-hoc de seq: 'seq 4 -1 1'

--
Absinthe makes the tart grow fonder.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
François Boisson
Le Fri, 11 Feb 2005 19:33:28 +0100
Jacques L'helgoualc'h <lhh+ a écrit:

Tu peux aussi avec bash te passer de l'appel à seq



Le pbm n'est pas de me passer de la fonctionnalités, c'est de me taper
les scripts que j'ai fait pour anticiper un éventuel bug...

F.B
Avatar
Jean-Yves LENHOF
Le vendredi 11 février 2005 à 19:46 +0100, François Boisson a écrit :
Le Fri, 11 Feb 2005 19:33:28 +0100
Jacques L'helgoualc'h <lhh+ a écrit:

> Tu peux aussi avec bash te passer de l'appel à seq

Le pbm n'est pas de me passer de la fonctionnalités, c'est de me taper
les scripts que j'ai fait pour anticiper un éventuel bug...

F.B



Ben à coup de find, grep, sed il y a moyen de s'en sortir...

A+


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
François Boisson a écrit, vendredi 11 février 2005, à 19:46 :
Le Fri, 11 Feb 2005 19:33:28 +0100
Jacques L'helgoualc'h <lhh+ a écrit:

> Tu peux aussi avec bash te passer de l'appel à seq

Le pbm n'est pas de me passer de la fonctionnalités, c'est de me taper
les scripts que j'ai fait pour anticiper un éventuel bug...



Tant qu'à faire ... tu évites un problème si /usr n'est pas monté. Et
un programme dont on modifie ainsi le comportement, alors qu'il est
largement utilisé dans les scripts, je n'aime pas trop.
--
Jacques L'helgoualc'h


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
François Boisson
Le Fri, 11 Feb 2005 21:33:35 +0100
Jacques L'helgoualc'h <lhh+ a écrit:

Tant qu'à faire ... tu évites un problème si /usr n'est pas mont é.
Et un programme dont on modifie ainsi le comportement, alors
qu'il est largement utilisé dans les scripts, je n'aime pas trop.
--



Bon argument, conseil suivi....
Avatar
Jacques L'helgoualc'h
François Boisson a écrit, samedi 12 février 2005, à 07:36 :
Le Fri, 11 Feb 2005 21:33:35 +0100
Jacques L'helgoualc'h <lhh+ a écrit:


[seq will suck]

Les syntaxes de for((;;)) divergent un peu suivant ton shell,

LC_ALL=C man bash =>
for (( expr1 ; expr2 ; expr3 )) ; do list ; done

man zshmisc =>
for (( [expr1] ; [expr2] ; [expr3] )) do list done

Bash et sh se passent du point-virgule entre "))" et "do", zsh accepte
aussi ce même point-virgule _mais_ exige l'espace entre "for" et "((".

La différence entre les deux « list » n'est que grammaticale, il faut
toujours un point-virgule devant le done.



Pour ton problème de scripts, si tu as la flemme(*) de tous les réviser
on peut aussi --- à moins que /usr/bin/seq ne soit codé en dur ---
écrire une fonction seq du shell qui ferait ce que tu veux.


Avec

$ find /bin /sbin /usr/bin /usr/sbin -type f -perm +111 |
while read s ; do
file $s | grep -qF 'shell script' &&
{ grep -Fw seq $s && echo $s; }
done

je ne trouve chez moi que

for i in $(/usr/bin/seq 6 -1 0); do
for i in $(/usr/bin/seq 6 -1 0); do

dans /usr/bin/ucf, du paquet ucf. On peut donc penser que seq est déjà
plus ou moins banni/obsolete/tricard chez Debian ?


(* la paresse est une vertu©)
--
Jacques L'helgoualc'h


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact