Voilà,
J'ai ceci :
#!/bin/zsh
IFS="|"
echo "1|2|3" | read UN DEUX TROIS
echo $UN $DEUX $TROIS
cela ne fonctionne pas, il ne fait aucune affectation, les variables sont vides.
En revanche, si je tape ces commandes dans la console, ça passe.
J'ai aussi testé :
#!/bin/zsh
IFS="|"
echo "1|2|3" > param
read UN DEUX TROIS < param
echo $UN $DEUX $TROIS
et ça marche.
Bien sûr il n'y a aucun intérêt de passer par un fichier.
Quelqu'un a la solution ?
# Solution
Posté par Romuald Delavergne . Évalué à 2.
read UN DEUX TROIS < <(echo 1 2 3)
echo $UN
1
echo $DEUX
2
echo $TROIS
3
[^] # Re: Solution
Posté par serial . Évalué à 2.
# Explication
Posté par Romuald Delavergne . Évalué à 3.
Dans la solution on utilise une syntaxe propre au bash qui permet de substituer la résultat d'une commande à un pipe nommé.
[^] # Re: Solution + Explication
Posté par Eric92 . Évalué à 1.
J'avais le même problème avec bash, alors que je suis plus habitué à ksh
(où la syntaxe avec pipe fonctionne) et je ne comprenais pas pourquoi...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.