(posh) IFS=: read x y

Le
Cyrille Lefevre
Bonjour,

sous cygwin tout du moins, posh le semble pas exporter IFS
temporairement IFS à la commande read, qu'en pensez-vous ?
autrement dit, bug ou pas bug ? je ne trouve pas l'info
dans SUSv3.

ex. :

p='/proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows
NT/CurrentVersion/Windows/Device'
IFS=',' read -r PRINTER < "${p}"
echo $p

=> HP LaserJet 4050 Series PCL6,winspool,Ne03:

semble fonctionner sur tous les autres shell

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
Vidéos High-Tech et Jeu Vidéo
  • Le smartphone Sony Xperia X voit sa résistance aux immersions testée durant deux ...
  • Présentation du Wendelstein 7-X le réacteur à fusion nucléaire le plus grand jamais ...
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
naddy
Le #23217071
Cyrille Lefevre
sous cygwin tout du moins, posh le semble pas exporter IFS
temporairement IFS à la commande read, qu'en pensez-vous ?
autrement dit, bug ou pas bug ?



Bug.

je ne trouve pas l'info dans SUSv3....



D'après POSIX ("The Open Group Base Specifications Issue 7"), read(1)
est une commande tout normale. C'est une "built-in", mais jamais
une "special built-in", donc rien de spécial concernant le traitement
des variables d'environnement.

--
Christian "naddy" Weisgerber
Stephane CHAZELAS
Le #23217431
2011-03-19, 00:24(+01), Cyrille Lefevre:
Bonjour,

sous cygwin tout du moins, posh le semble pas exporter IFS
temporairement IFS à la commande read, qu'en pensez-vous ?
autrement dit, bug ou pas bug ? je ne trouve pas l'info
dans SUSv3....

ex. :

p='/proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows
NT/CurrentVersion/Windows/Device'
IFS=',' read -r PRINTER < "${p}"
echo $p




Avec une seule variable, il ne peut pas y avoir de splitting.
M'est avis que tu veux

IFS=, read -r PRINTER rest
echo "$PRINTER"

--
Stephane
Cyrille Lefevre
Le #23217761
Le 19/03/2011 20:48, Stephane CHAZELAS a écrit :

Avec une seule variable, il ne peut pas y avoir de splitting.
M'est avis que tu veux

IFS=, read -r PRINTER rest
echo "$PRINTER"



quel c... bien sur ! merci.

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Cyrille Lefevre
Le #23217751
Le 19/03/2011 20:48, Stephane CHAZELAS a écrit :
2011-03-19, 00:24(+01), Cyrille Lefevre:
Bonjour,

sous cygwin tout du moins, posh le semble pas exporter IFS
temporairement IFS à la commande read, qu'en pensez-vous ?
autrement dit, bug ou pas bug ? je ne trouve pas l'info
dans SUSv3....

ex. :

p='/proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows
NT/CurrentVersion/Windows/Device'
IFS=',' read -r PRINTER< "${p}"
echo $p



Avec une seule variable, il ne peut pas y avoir de splitting.
M'est avis que tu veux

IFS=, read -r PRINTER rest
echo "$PRINTER"



bon, en fait le pb n'est pas sous posh, mais dash...

voila ce que ça donne :

[ -e "${p}" ] && IFS=',' read -r PRINTER rest < "${p}"
echo $PRINTER
HP

pour info :

cat "$p"
HP LaserJet 4050 Series PCL6,winspool,Ne03:

bug, donc, on est d'accord...

PS: en fait, j'avais bien le rest, mais oublié dans le spécifi é dans le
post %-/

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Cyrille Lefevre
Le #23217741
Le 19/03/2011 16:52, Christian Weisgerber a écrit :
Cyrille Lefevre
sous cygwin tout du moins, posh le semble pas exporter IFS
temporairement IFS à la commande read, qu'en pensez-vous ?
autrement dit, bug ou pas bug ?



Bug.

je ne trouve pas l'info dans SUSv3....



D'après POSIX ("The Open Group Base Specifications Issue 7"), read(1)
est une commande tout normale. C'est une "built-in", mais jamais
une "special built-in", donc rien de spécial concernant le traitement
des variables d'environnement.



c'est bien ce que j'avais compris... merci.

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Stephane CHAZELAS
Le #23218271
2011-03-19, 23:30(+01), Cyrille Lefevre:
[...]
bon, en fait le pb n'est pas sous posh, mais dash...

voila ce que ça donne :

[ -e "${p}" ] && IFS=',' read -r PRINTER rest < "${p}"
echo $PRINTER
HP

pour info :

cat "$p"
HP LaserJet 4050 Series PCL6,winspool,Ne03:


[...]

Can't reproduce here:

$ echo a b,c | dash -c 'IFS=, read -r a b; echo "$a"'
a b

--
Stephane
Benoit Izac
Le #23218471
Bonjour,

le 20/03/2011 à 09:48, Stephane CHAZELAS a écrit dans le message

bon, en fait le pb n'est pas sous posh, mais dash...

voila ce que ça donne :

[ -e "${p}" ] && IFS=',' read -r PRINTER rest < "${p}"
echo $PRINTER
HP

pour info :

cat "$p"
HP LaserJet 4050 Series PCL6,winspool,Ne03:


[...]

Can't reproduce here:

$ echo a b,c | dash -c 'IFS=, read -r a b; echo "$a"'
a b



I can (dash-0.5.6.1):
% echo a b,c | dash -c 'IFS=, read -r a b; echo "$a"'
a
% echo a b,c | dash -c 'IFS=,; read -r a b; echo "$a"'
a b

--
Benoit Izac
Benoit Izac
Le #23218651
Dans le message écrit :

I can (dash-0.5.6.1):
% echo a b,c | dash -c 'IFS=, read -r a b; echo "$a"'
a
% echo a b,c | dash -c 'IFS=,; read -r a b; echo "$a"'
a b



Apparemment, c'est réparé dans la version de développement :
% git branch -v
* master ec2c84d [PARSER] Fix clobbering of checkkwd
% echo a b,c | ./dash -c 'IFS=, read -r a b; echo "$a"'
a b

--
Benoit Izac
Cyrille Lefevre
Le #23219141
Le 20/03/2011 09:48, Stephane CHAZELAS a écrit :
2011-03-19, 23:30(+01), Cyrille Lefevre:
[...]
bon, en fait le pb n'est pas sous posh, mais dash...

voila ce que ça donne :

[ -e "${p}" ]&& IFS=',' read -r PRINTER rest< "${p}"
echo $PRINTER
HP

pour info :

cat "$p"
HP LaserJet 4050 Series PCL6,winspool,Ne03:


[...]

Can't reproduce here:



je te rapelle que fcou est un forum français :-)

$ echo a b,c | dash -c 'IFS=, read -r a b; echo "$a"'
a b



quelle version de dash as-tu ?

ici, c'est la 0.5.6.1

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Publicité
Poster une réponse
Anonyme