我在 Gnome 桌面管理器 Ubuntu 中打开了两个 pts 终端。

我想要做的是使用终端/dev/pts/1 使用重定向向终端/dev/pts/0 写入一些内容,例如:

##in pts/1
echo date > /dev/pts/0

但是在 pts/0 中,仅打印日期并且按 Enter 不会执行它。所以我猜 comamnd 不会进入 pts/0 的标准输入。所以我尝试将 echo date 的输出通过管道传输到/dev/pts/0 这给了我权限被拒绝的错误,我成为了 root 并更改了它的权限,但仍然我无法让 date 命令在 pts/0 中运行。

我正在尝试这些东西用于学习目的。所以我真的很困惑它是如何在这里工作的,以及我应该怎么做才能完成它。

最佳答案

您可以通过执行以下命令来实现(来自/dev/pts/1 或其他 tty):
执行 1>/dev/pts/0
停用
exec 1>/dev/pts/1 #或你的实际原始tty地址。
基本上你正在取代 tty 标准输入。
已编辑以获取更多详细信息。
在这种情况下,“exec”会启动一个新的 bash,您可以为其提供一组新的环境变量,这些环境变量通常无法即时更改。有关更多详细信息,请执行“man exec”。
“1>/dev/pts/0”在这里我们是说,“无论我在这个新 bash 上输入什么,将它写入另一个,它确实会这样做,但所有标准输出都将显示在原始 tty 中。
祝你学习 linux 好运,希望你喜欢。

关于linux - 为什么我不能从另一个终端写入终端设备的标准输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52109839/

10-13 07:58