Ceci dit, je suis souvent dans un contexte maîtrisé et le seul cas où ça peut mal se passer à ma connaissance est quand on a trop de valeurs (raison d'être de commandes comme xargs par exemple)
Oui je chipote un peu mais c'est mon grain de sel moins pertinent. ;-) Il y a en fait deux problèmes en fait avec le for whatever in $(...); do Le premier et le plus important est que si il y a beaucoup de résultats ça casse le script, le second est que ça utilise l'IFS pour couper la ligne en mots. (En général quand on touche à IFS on est prudent, cependant. :-) )
En général xargs est mieux que la boucle while mais on ne peut pas l'utiliser tout le temps: cela ne marche qu'avec des programmes externes. Si on veut itérer avec une commande complexe ou une fonction on est obligé de passer par une boucle while.
Pour le cat, parfois l'usage légitime dans un pipe est si on a filtre configurable:
datasource()
{
case "1ドル" in
''|everything)
cat FILE
;;
sample)
head -n 20 FILE
;;
esac
}
datasource sample | grep ...
[^] # Re: Mon petit grain de sel
Posté par Michaël (site web personnel) . En réponse au journal rétrospective sur la mise en page en console. Évalué à 4. Dernière modification le 10 février 2022 à 11:32.
Oui je chipote un peu mais c'est mon grain de sel moins pertinent. ;-) Il y a en fait deux problèmes en fait avec le
for whatever in $(...); doLe premier et le plus important est que si il y a beaucoup de résultats ça casse le script, le second est que ça utilise l'IFS pour couper la ligne en mots. (En général quand on touche à IFS on est prudent, cependant. :-) )En général xargs est mieux que la boucle while mais on ne peut pas l'utiliser tout le temps: cela ne marche qu'avec des programmes externes. Si on veut itérer avec une commande complexe ou une fonction on est obligé de passer par une boucle while.
Pour le cat, parfois l'usage légitime dans un pipe est si on a filtre configurable: