(Courriels de diversion: <effectuaient@fessiere-pianotee.com> <bravais@stationnait-exhibez.com> <camouflais@disposeront-brille.com> <cordes@terminerent-type.com> <conspireriez@brulerez-minorations.com> <lasso@assombrit-sonates.com> <grossira@conspirations-aboliras.com> <exclamerai@detendras-soulevions.com> <envisagea@supplierons-recueillit.com> <prevaudriez@affamees-autorisiez.com> )
On 07.06.2011 01:50, Jean-Marc Mongrelet wrote:
Voila un script: $ cat all-param.sh #!/bin/bash echo "$@" read -p "Appuyez sur une touche pour continuer..." [...] -Mais la il fonctionne pas: $ echo "toto titi tata" | xargs all-param.sh toto titi tata
Le problème c'est que xargs ferme le stdin, donc ton "read" ne peut rien recevoir.
Il faut donc récupérer le tty du processus et forcer la redirection.Bien sur cela ne fonctionne de toute façon que si tu le lance depuis un terminal.
Aldric $ cat all-param.sh echo "$@" # détection du tty tty=$(ps -p $$ -o tt --noheader) # redirection sur le descripteur 3 (3 par exemple) exec 3</dev/$tty # lecture depuis le descripteur pointant sur le tty (3 dans ce cas) read -u 3 -p "Appuyez sur une touche pour continuer..." $ all-param.sh toto toto Appuyez sur une touche pour continuer... $ echo toto | xargs all-param.sh toto Appuyez sur une touche pour continuer... ----------------------------------------------------------------- Les listes de diffusion du CULTe - Pour une informatique libre http://www.CULTe.org/listes/ Pour se desabonner: mailto:linux-31-unsubscribe@CULTe.org?subject=Cliquez_sur_ENVOYER