W bash
Mam problem z ustaleniem, czego powinienem użyć?
wszystkie moje skrypty używają „>> / dev / stderr”
w wierszu polecenia, jeśli spróbuję:
echo test >>/dev/stderr
działa
echo test >> /dev/stderr
działa
echo test >/dev/stderr
działa
echo test > /dev/stderr
działa
echo test >>&2
FAILS!
echo test >> &2
FAILS!
echo test >&2
działa
echo test > &2
niepowodzenie!
Jestem gotów zmienić wszystkie moje skrypty na >&2
.
Wydaje się, że ma również duży wpływ na ssh (po su SomeUser
), gdzie w >>/dev/stderr
ogóle nie będzie działać (odmowa dostępu), tylko >&2
będzie działać.
su
tym, jak problem się zdarzy, zaktualizowałem pytanie
su -c 'some command'
, to polecenie jest uruchamiane przez /bin/sh
, a nie bash
, więc /dev/stderr
nie jest gwarantowane zachowanie specyficzne dla bash (takie jak symulowanie w celu przekierowania, gdy nie jest dostępne).