【问题标题】:sending commands to a terminal from another one从另一个终端向终端发送命令
【发布时间】:2012-05-22 12:43:43
【问题描述】:

假设您有一个终端 (T1) 以 6350 pid 打开。

类型:

echo "ls\n" > /proc/6350/fd/0 (writen in another terminal (T2)).

这会在 T1 中写入 ls 和行跳转但不执行它?为什么?

我也尝试过使用

cat|bash with echo "ls\n" > /proc/catPID/fd/0 

但它仍然没有执行。

有什么想法吗?

谢谢,

已编辑:

一个可能的技巧:

mkfifo toto

$bash < toto

$echo "ls" > toto

【问题讨论】:

  • 没有“\n”? echo "ls" &gt; /proc/6350/fd/0

标签: unix process system stdin pipe


【解决方案1】:

首先,如果您希望 echo\n 解释为换行符,您必须使用 -e 调用它。

其次,您想要的(劫持终端)并不(容易)可行,请参阅unix.stackexchange。我会在两个会话中使用screen(一个带有 -x 选项)。

【讨论】:

  • echo without option -n\n 附加到 arg。
  • @rvlander:带有回声的提示是如何输出 \n 以防您想输出它(正如 MirkoBanchi 已经提到的,因为回声已经自己输出,所以没有必要)。您的问题是您想“劫持” pts,这是不可行的。
猜你喜欢
  • 2021-09-22
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
  • 2016-06-06
  • 1970-01-01
  • 2017-06-17
  • 1970-01-01
相关资源
最近更新 更多