OVH Cloud OVH Cloud

/bin/sh et redirection

3 réponses
Avatar
DINH Viêt Hoà
En shell standard, y-a-t-il possibilité de rediriger STDERR sur STDIN ?

en gros, je cherche l'équivalent de :

(attention, ça va basher ... enfin c'est du /bin/bash)

toto 2>&1

--
DINH V. Hoa, membre de l'association de la lutte contre les blagues
d'informaticien

"s/^\(\(\\.\|[^\[]\|\[\(\^.\|[^^]\)[^]]*\]\)*\)\(\\[^\*[]\)/\1\\\4/"
-- Stéphane CHAZELAS

3 réponses

Avatar
Laurent Wacrenier
DINH Viêt Hoà écrit:
En shell standard, y-a-t-il possibilité de rediriger STDERR sur STDIN ?


toto 2>&1


en gros, je cherche l'équivalent de :

(attention, ça va basher ... enfin c'est du /bin/bash)

toto 2>&1


bash n'a rien inventé.

Avatar
Stephane Chazelas
2003/11/18, 16:51(+00), Laurent Wacrenier:
DINH Viêt Hoà écrit:
En shell standard, y-a-t-il possibilité de rediriger STDERR sur STDIN ?


toto 2>&1


Ça, ca redirige sur STDOUT, pas sur "STDIN", cela dit STDIN est
ouvert en lecture et STDERR en écriture d'habitude, donc,
rediriger l'un sur l'autre va pas forcément marcher:

$ sh -c 'ls /ZZ 2>&0'
ls: /ZZ: Aucun fichier ou répertoire de ce type

Ça marche parce que STDIN est un terminal, mais évidemment, dans

$ sh -c 'ls /ZZ 2>&0' < file

Ça ne marche pas (les write de ls renvoient -1 avec EBADF).

On peut faire:

$ sh -c 'ls /ZZ 2>&0' 0> file

Sinon, c'est sûr, mais bon...

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]


Avatar
DINH Viêt Hoà

2003/11/18, 16:51(+00), Laurent Wacrenier:
DINH Viêt Hoà écrit:
En shell standard, y-a-t-il possibilité de rediriger STDERR sur STDIN ?


toto 2>&1


Ça, ca redirige sur STDOUT, pas sur "STDIN", cela dit STDIN est
ouvert en lecture et STDERR en écriture d'habitude, donc,
rediriger l'un sur l'autre va pas forcément marcher:


la réponse initiale correspondait bien à ce que j'avais dans la tête en
fait. Enfin, merci quand même.

--
DINH V. Hoa,

"s/^((.|[^[]|[(^.|[^^])[^]]*])*)([^*[])/14/"
-- Stéphane CHAZELAS