【问题标题】:How to pass custom commands between interactive sessions如何在交互式会话之间传递自定义命令
【发布时间】:2016-03-11 03:07:57
【问题描述】:

我有一个脚本需要用户进行某种交互才能正常工作。如何将自定义命令从一个终端窗口传递到另一个终端窗口?

假设我们打开了 2 个终端。 /dev/ttys000 和 /dev/ttys001,在第一个上,我们的交互式 shell 正在工作。现在像 - help > /dev/ttys000 这样的命令可以正常工作,但是我的脚本支持的自定义命令,比如 -itIsNotABashCommand > /dev/ttys000 根本不起作用,打印“找不到命令”。

【问题讨论】:

  • 我看不出从一个终端向另一个终端传递命令与“找不到命令”有什么关系。
  • 让我解释一下。在 1 个终端上,一个交互式会话正在运行。在本次会议中,您有一些仅在此处可接受的“自定义”命令。所以现在我想从另一个终端或 Java 程序,甚至是 Bash 脚本触发一些“自定义”命令来管理我的会话并在那里做一些事情。现在清楚了吗? :) 谢谢回复
  • 但是等等,就这么简单吗?例如,我们用 C 语言构建了一个简单的程序,询问用户他的姓名,我们在终端中运行该程序,它等待用户的输入,我想从另一个终端窗口与这个简单的会话进行交互。恐怕编辑 PATH 不是解决方案。
  • 这不是命令。不,除非您建立命名管道,否则这是不可能的。
  • help > /dev/ttys000 没有设置命令help 在另一个终端执行;它在当前 shell 中运行命令,然后将 输出 发送到另一个终端。

标签: bash shell session terminal command


【解决方案1】:

也许你的系统有这个ioctl

伪造输入 TIOCSTI const char *argp 在输入队列中插入给定的字节。

在这种情况下,请参阅“Construct a command by putting a string into a tty”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 2011-12-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    相关资源
    最近更新 更多