Đây là một giải pháp hoạt động trên bất kỳ triển khai Unix / Linux nào, giả sử nó quan tâm đến việc tuân theo POSIX
tiêu chuẩn. Nó hoạt động trên một số môi trường không phải là Unix như cygwin
quá.
echo 'ee' | tee /dev/tty | foo
Tham khảo: Thông số kỹ thuật cơ sở nhóm mở Vấn đề 7 IEEE Std 1003.1, Phiên bản 2013, §10.1 :
/ dev / tty
Liên kết với nhóm quy trình của quá trình đó, nếu có. Nó rất hữu ích cho các chương trình hoặc thủ tục shell muốn chắc chắn viết tin nhắn đến hoặc đọc dữ liệu từ thiết bị đầu cuối cho dù đầu ra đã được chuyển hướng như thế nào. Nó cũng có thể được sử dụng cho các ứng dụng yêu cầu tên của tệp cho đầu ra, khi muốn nhập đầu ra và rất mệt mỏi để tìm ra thiết bị đầu cuối nào đang được sử dụng. Trong mỗi quy trình, một từ đồng nghĩa cho thiết bị đầu cuối kiểm soát
Một số môi trường như Google Colab đã được báo cáo là không thực hiện /dev/tty
trong khi vẫn có tty
lệnh của họ trả lại một thiết bị có thể sử dụng. Đây là một cách giải quyết:
tty=$(tty)
echo 'ee' | tee $tty | foo
hoặc với vỏ Bourne cổ đại:
tty=`tty`
echo 'ee' | tee $tty | foo
echo 'ee' | tee /dev/stderr
Tuy nhiên, xin lưu ý rằng nó hoạt động, vì vậy nếu yêu cầu "trên màn hình" của bạn được thỏa mãn bởi stderr, điều đó sẽ được thực hiện.