我正在尝试尝试并了解 ttys。在一个终端仿真器窗口中,tty 的输出给了我
$ tty
/dev/ttys010
所以我想如果我写入此设备,终端窗口将显示输出。在第二个窗口中,当我运行
$ echo "test" > /dev/ttys010
第一个窗口按预期显示了单词“test”。但是,当我运行
$ echo "test" | /dev/ttys010
我在第一个窗口中没有得到任何输出。这是为什么?我认为这是因为 | 将 stdout 重定向到程序,而 > 将输出重定向到文件。
答案1
你可以使用管道写入文件。以下是两种替代方案
echo "test" | tee /dev/ttys010
echo "test" | cat > /dev/ttys010
正如上面评论中的答案所解释的那样,管道将一个程序的标准输出馈送到另一个程序的标准输入,并且/dev/ttys010
是一个设备文件,而不是程序,通常不是您想要运行的东西。