从另一个终端发送命令到终端

时间:2012-05-22 12:43:43

标签: unix process system stdin pipe

假设您的终端(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

1 个答案:

答案 0 :(得分:1)

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

其次,你想要的(劫持一个终端)不是(容易)可行的,见unix.stackexchange。我会在两个会话中使用screen(一个使用-x选项)。