il semble que l'option -I de xargs ne soit pas disponible, j'ai juste 4 options dispo : -r -x -0 et -t
Je ne m'y attendais pas, vu que -I est une option POSIX ; mais bon vu que le BusyBox est vraiment très vieux... Il ne faut pas hésiter à le mettre à jour dès que possible.
Heureusement qu'il restait la solution avec la boucle shell.
NB : j'ai mis des "S" à la place de certains "$" pour ce post sinon c'était illisible
Si ça peut te rassurer, il y en a qui n'en mènent pas plus large au bout de dix ans. Mais voici quelques trucs/astuces pour améliorer la portabilité (i.e. que ça fonctionne le jour où tu changes de shell/machine ...sous réserve qu'on ne rencontre pas quelque chose d'encore plus limité) :
Il me semble que certains shells peuvent ne pas comprendre/aimer la concaténation dans repcible="/share/data2_export/"ScibleS"/" ; il faut utiliser directement la chaîne avec la possibilité de remplacement : repcible="/share/data2_export/$cible/"
Dans les cas ambigus (mais on peut le faire systématiquement, ça mange pas de pain) comme resultat="Srepcible"S"liste.txt" il faut utiliser la syntaxe des noms de variable entre accolades : `resultat="${repcible}liste.txt"
Il faut prendre l'habitude de mettre systématiquement des "quotes" (sauf rares exceptions), comme dans mkdir "$repcible" et if [ "$reponse" = "x" ]; then
Donc, echo "$repcible"
et cat "$resultat"
et même nb=$(wc -l < "$resultat")
J'aurais pas pensé que read accepte l'option -p car ce n'est pas le cas partout. Donc je prend l'habitude de faire en deux temps... Par contre, sauf bonne raison, il faut toujours utiliser l'option -r dans les scripts : ça évite les surprises avec certains caractères spéciaux (plus particulièrement les \ qu'il tente d'interpréter)
"It is seldom that liberty of any kind is lost all at once." ― David Hume
[^] # Re: pistes
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au message Problème sur enchainement de commandes find et rsync. Évalué à 2.
Je ne m'y attendais pas, vu que
-Iest une option POSIX ; mais bon vu que le BusyBox est vraiment très vieux... Il ne faut pas hésiter à le mettre à jour dès que possible.Heureusement qu'il restait la solution avec la boucle shell.
Pour plusieurs lignes de code, il faut utiliser la syntaxe de bloc de code...
https://linuxfr.org/wiki/aide-edition#toc-code-avec-coloration-syntaxique
...en veillant à sauter une ligne avant et après. Dedans, les dollars n'y sont pas problématiques et on a la coloration syntaxique.
Si ça peut te rassurer, il y en a qui n'en mènent pas plus large au bout de dix ans. Mais voici quelques trucs/astuces pour améliorer la portabilité (i.e. que ça fonctionne le jour où tu changes de shell/machine ...sous réserve qu'on ne rencontre pas quelque chose d'encore plus limité) :
repcible="/share/data2_export/"ScibleS"/"; il faut utiliser directement la chaîne avec la possibilité de remplacement :repcible="/share/data2_export/$cible/"echo SnbS" fichiers trouvés"seraitecho "$nb fichiers trouvés"resultat="Srepcible"S"liste.txt"il faut utiliser la syntaxe des noms de variable entre accolades : `resultat="${repcible}liste.txt"mkdir "$repcible"etif [ "$reponse" = "x" ]; thenecho "$repcible"cat "$resultat"nb=$(wc -l < "$resultat")readaccepte l'option-pcar ce n'est pas le cas partout. Donc je prend l'habitude de faire en deux temps... Par contre, sauf bonne raison, il faut toujours utiliser l'option-rdans les scripts : ça évite les surprises avec certains caractères spéciaux (plus particulièrement les\qu'il tente d'interpréter)"It is seldom that liberty of any kind is lost all at once." ― David Hume