#26 Le 31/07/2023, à 15:33
- Chaosphere
Re : Tuto scripts shell
Ca fait quoi la ligne suivante exactement ?
set -- $REPLY
Ca rempli les variables positionnelles avec le contenu de REPLY ?
Hors ligne
#27 Le 31/07/2023, à 17:14
- MicP
Re : Tuto scripts shell
…Ca rempli les variables positionnelles avec le contenu de REPLY ?
Côté POSIX, un extrait de la page web :
The Open Group Base Specifications Issue 7IEEE Std 1003.1-2008Copyright © 2008 The IEEE and The Open Group
concernant la commande set avec l'argument --
…
The special argument "--" immediately following the set command name can be used to delimit the arguments if the first argument begins with '+' or '-' , or to prevent inadvertent listing of all shell variables when there are no arguments.
The command set -- without argument shall unset all positional parameters and set the special parameter '#' to zero.
…
=======
Même chose pour les shells bash et dash (sh)
comme on peut le voir dans le retour des lignes de commande suivantes :
man --pager='less -p " set \["' bash
man --pager='less -p " set \["' dash
Dernière modification par MicP (Le 31/07/2023, à 17:14)
Hors ligne
#28 Le 31/07/2023, à 18:02
- kamaris
Re : Tuto scripts shell
Oui, set -- var1 … varN assigne var1 … varN aux paramètres positionnels, d'où $# == N.
Mais "l'astuce" ici est aussi de ne pas mettre de guillemets autour de $REPLY, afin de laisser le shell découper la réponse donnée par l'utilisateur en mots.
Cf. ton commentaire https://forum.ubuntu-fr.org/viewtopic.p … #p22696316 et la réponse qui suit d'Hizoka
Dernière modification par kamaris (Le 31/07/2023, à 18:03)
Hors ligne