[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash: woody à sarge pour info



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+nospam@free.fr> 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



Reply to: