wiki - oui, qui ?

Bruno Bonfils asyd at asyd.net
Tue Mar 7 13:12:47 CET 2006


Christophe Martin <christophe.martin at sdt.univ-brest.fr> writes:

>> Ben euh, tu te crées un compte et tu appuies sur "Éditer cette page" ?
> Ok Merci nickel, j'essaierai. Mais comment connait-on l'auteur d'une
>page ?

hmmm dans le recent changes, mais je vais rajouter la ligne qui
indique le dernier auteur en fin de page

>> 
>> Et euh c'est quoi le problème avec ma^Wla page sur awk ? 
> Le script des nouveaux UID est faux :
> 	si l'UID 65533 est utilise il dira d'utiliser 65534.

c'est une blague ? Tu crois que les gens sont assez con pour pas
corriger eux meme si l'uid du nobody est différent de celui que j'ai
donné ? En plus c'est bien marqué « exemple »

> nobody est pas toujours 65534 (ce qe tu remarques d'ailleurs)

> on pourrait utiliser une condition du genre :
> 	! /^nobody/

effectivement, je pourrais faire un check $1

> ou, pour faire ceinture et bretelles (mais le script reste faux):
> 	! /^nobody/ && $3 != 65534
>
> il est parfaitement inutile d'initialiser la variable nuid.
>

oui je sais bien, j'aurais du le préciser, le but c'etait surtout
d'utiliser le bloc BEGIN { } 

> a titre d'info certain solaris ont 2 nobody : nobody4:65534 et nobody:60001

effectivement, j'ai un peu honte du coup ! (c'est nobody et noaccess ici)

>
> FNR n'est pas une invention GNU. C'est disponible dans tout new-awk qui se
> respecte. awk a d'abord ete defini par je sais pas qui (Aho, Weinberger et
> Kernighan), puis une seconde definition est venue de je ne sais ou, c'est la
> definition du new-awk., evidement, sous linux tous les awks sont des new awk.

oui désolé, jusqu'il n'y a pas longtemps je croyais naivement qu'il
n'y avait que deux versions de ce genre d'outils, la version GNU et
les autres, mais je me rend compte que c'est plus complexe que ca


> Phrase pas clair :
> "La numerotation commence a zero" ==> pour qui ? awk ? surement pas.

hmmm, au temps pour moi

> pour un fichier ? un fichier, c'est des data (ici), ca calcule pas.

pas compris

>
> Le style enfin.
> Il ne faut pas oublier qu'un script awk c'est une suite de
> paires : test action
> Si le test est asbsent, on considere que c'est un test toujours vrai
> Si l'action est absente l'action par defaut est l'affichage
> on ne peut omettre les deux (un script vide ne produit rien)
>
> Faire une action a tout faire et la remplir de test est anti
> awkesque

ok, pour ma part j'ai toujours l'habitude de cloisonner une section a
travers des { } (perl tout ca), je retiens

> Cela est vrai pour le premier script qui se reecrit plus awkesquement :
> getent passwd  |
> nawk -F : ' !/^nobody/ && $3 != 65534 { nuid=$3 } END { print nuid + 1}'
> note que comme ca il est toujours faux et bugge. pour le debugger il
> faudrait par exemple le reecrire comme ca :
> nawk -F : '
> 	END {
> 		while( ! valide( "", nuid ))
> 			++nuid
> 		print nuid
> 	}
> 	function valide( logon, uid ) {
> 		return logon !~ /^nobody/ && uid != 65534
> 	}
> 	valide( $1, $3)  && nuid < $3 {
> 		nuid = $3 + 1
> 	}
> '
>
> et pour le second qui s'ecrit en fait ainsi :
> nawk 'FNR % 2' ou nawk '!(FNR % 2)' suivant qu'on veut commencer a la
> premiere ou a la deuxieme.

Ben fais en profiter tout le monde en mettant sur le wiki, c'est
toujours le même problème dans le milieu libre, les gens qui savent un
peu ou pas du tout font des choses, et les gens qui savent ne font
rien, et on arrive à des docs "fausses"

Du coup je vais retirer mes exemples socat puisqu'ils sont
certainement faux aussi \o/


-- 
http://asyd.net/home/   - Home Page
http://guses.org/home/  - French Speaking Solaris User Group



More information about the Shell mailing list