Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

(posh) IFS=: read x y

9 réponses
Avatar
Cyrille Lefevre
Bonjour,

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

ex. :

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

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

semble fonctionner sur tous les autres shell...

Cordialement,

Cyrille Lefevre.
--=20
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.

9 réponses

Avatar
naddy
Cyrille Lefevre <cyrille.lefevre-news% wrote:

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
Avatar
Stephane CHAZELAS
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
Avatar
Cyrille Lefevre
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.
Avatar
Cyrille Lefevre
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.
Avatar
Cyrille Lefevre
Le 19/03/2011 16:52, Christian Weisgerber a écrit :
Cyrille Lefevre<cyrille.lefevre-news% wrote :

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.
Avatar
Stephane CHAZELAS
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
Avatar
Benoit Izac
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
Avatar
Benoit Izac
Dans le message , le 20/03/2011 à 10:34, j'ai
é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
Avatar
Cyrille Lefevre
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.