0
我想僅使用/ dev/tty寫入stderr。如果我直接寫入/ dev/tty(使用tee),那麼似乎會在stdout上打印出來。那是對的嗎?我如何指定要打印到標準錯誤?使用/ dev/tty寫入stderr?
目前在bash線看起來像
echo "foo" >&2 | tee /dev/tty | logger -it "my_script"
我想僅使用/ dev/tty寫入stderr。如果我直接寫入/ dev/tty(使用tee),那麼似乎會在stdout上打印出來。那是對的嗎?我如何指定要打印到標準錯誤?使用/ dev/tty寫入stderr?
目前在bash線看起來像
echo "foo" >&2 | tee /dev/tty | logger -it "my_script"
如果我們的#
echo "foo" >&2 # echo "foo" and redirect to fd 2 (/dev/sdterr)
| #pipe stdout to
tee /dev/tty #both send stdout to file /dev/tty, which is terminal file that can output both stdout and stderr depending on what you pass to it (so you probably want /dev/stdout/ or /dev/stderr directly instead) and pass it along to the next pipe
| #pipe stdout to
logger -it "my_script"
所以這取決於你想要做什麼之後,每個命令的結果裂開除了你的命令(在上面的FOO被重定向到標準錯誤,並沒有被輸送到tee
)
如果你要打印FOO到標準錯誤,並通過標準輸出到你的腳本ÿ OU可以做
echo "foo" | tee /dev/stderr | yourscirpt
然後tee
將打印到stderr和foo將得到管道的標準輸出到yourscript。
你完全贊同我的意圖 - 打印到當前的stderr,然後在其他地方輸送。 – ChaimKut
你有一個在stdout和stderr上產生輸出的命令,你想記錄stderr並在屏幕上顯示它? –
也許你真正想要的是'echo「foo」| tee/dev/stderr | logger -it「my_script」' – anishsane
你可能會覺得這個答案有幫助:http://stackoverflow.com/a/692407/1608708 – imp25