<p>我从@ulfizer那里得到了答案,并对其进行了扩展,使之成为一个完整且可用的应用程序。在</p>
<pre><code>import sys
import fcntl
import termios
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('tty', type=argparse.FileType('w'),
help='full tty path as given by the tty command')
group = parser.add_mutually_exclusive_group()
group.add_argument('-n', action='store_true',
help='prevent sending a trailing newline character')
group.add_argument(' stdin', action='store_true',
help='read input from stdin')
group = parser.add_argument_group()
group.add_argument('cmd', nargs='?',
help='command to run (required if not using stdin)')
group.add_argument('args', nargs='*',
help='arguments to command')
args = parser.parse_known_args()
if args.stdin:
data = sys.stdin.read()
else:
data = ' '.join([args.cmd] + args.args)
for c in data:
fcntl.ioctl(args.tty, termios.TIOCSTI, c)
if not args.n and data[-1][-1] != '\n':
fcntl.ioctl(args.tty, termios.TIOCSTI, '\n')
</code></pre>
<p>以下是如何使用它:</p>
<p><strong>终端1:</strong>执行。。。在</p>
^{pr2}$
<p><strong>终端2:</strong>执行。。。在</p>
<pre><code>$ sudo python termfake.py $(cat /tmp/t1) date +%s
</code></pre>
<p><strong>终端1:</strong>观察。。。在</p>
<pre><code>$ tty > /tmp/t1
$ date +%s
1487276400
</code></pre>