une ligne de bash "illisible" (de mon point de vue, ce concentré de caractères sans espaces est pénible à lire du moins) et qui risque de se retourner contre moi, je préfère les 50 lignes de C standard.
Pour bien connaître (ou avoir connu) les deux, chacun se défend bien en termes d'illisibilité. Pour améliorer les choses quand on programme le shell, il faut utiliser des fonctions dont les noms sont explicatifs, je fais la traduction:
listen_udp(){
nc -u 12345 -l
}
sendto_udp(){# Sur ma version de NC j'ai besoin du -w 0# pour que NC arrête d'essayer de lire STDIN après# la fin du message.
nc -w 0 -u 127.0.0.1 12345}
Et le programme s'écrit
listen_udp &echo"le résultat"| sendto_udp
Cela démarre en arrière-plan (&) un serveur qui écrit tous les messages reçus sur UDP puis envoie un message sur ce serveur.
Aussi, j'ai appris à me méfier d'echo, et une pratique que j'essaie de faire au max est de toujours utiliser printf, pour éviter les surprises.
La "bonne pratique" est de n'utiliser echo que sur un texte constant (c'est le cas ici) qui de plus ne commence pas par un tiret. Pour tout le reste on utilise printf en utilisant une chaîne de format constante.
a doit être lié au fait que je suis un dev qui joue aux admins, et pas un vrai admin
On a le droit de bien connaître le shell même sans être admin. :-)
[^] # Re: Netcat?
Posté par Michaël (site web personnel) . En réponse au journal Gestion des services avec runit. Évalué à 9. Dernière modification le 10 avril 2019 à 23:59.
Pour bien connaître (ou avoir connu) les deux, chacun se défend bien en termes d'illisibilité. Pour améliorer les choses quand on programme le shell, il faut utiliser des fonctions dont les noms sont explicatifs, je fais la traduction:
Et le programme s'écrit
Cela démarre en arrière-plan (
&) un serveur qui écrit tous les messages reçus sur UDP puis envoie un message sur ce serveur.La "bonne pratique" est de n'utiliser echo que sur un texte constant (c'est le cas ici) qui de plus ne commence pas par un tiret. Pour tout le reste on utilise
printfen utilisant une chaîne de format constante.On a le droit de bien connaître le shell même sans être admin. :-)