2017-08-14 79 views
0

我有一个bash脚本,我希望能够在xterm中保留日志,并且能够随时向其发送回显。发送echo命令到外部xTerm

我该怎么做?

+0

请显示一些研究工作,并告诉我们您试图通过自己解决这个问题? – quinz

回答

0

检查xterm会话中的GPG_TTY变量。它应该有类似

GPG_TTY=/dev/pts/2 

值这个方法应该是可用于支持GNU Pinentry终端。

另一种选择,以确定当前终端名称是使用

readlink /proc/self/fd/0 

最后一种方法只适用于Linux的

现在,如果你的bash脚本执行命令

echo "Hello, world!" > /dev/pts/2 

这条线应该出现在xterm屏幕上。

+0

在xTerm会话中没有变量'GPG_TTY',但是我确实得到了'echo -e“\ e [91; 1mTest>>/dev/pts/1'的工作。我如何找到正确的/ dev/pts编号? –

+0

@JacobCollins我已更新该帖子。您可以从xterm命令提示符下发出'readlink/proc/self/fd/0' –

+1

谢谢,这似乎工作,但我发现更简单的方法:)无论如何非常感谢 –

1

我设法通过运行xterm和while循环来清除屏幕,读取日志文件的内容,暂停一秒钟,然后再次循环来制作控制台。这是命令:

xterm -T Console -e "while true: do cls && cat ${0}-LOG.txt && sleep 1; done" 

然后送东西到控制台:

echo -e "\e[91;1mTest" >> ${0}-LOG.txt 

,控制台也将更新每一秒。