如何在当前或另一个终端窗口中获​​取at命令的输出

时间:2012-06-03 19:47:53

标签: linux io

我正在尝试使用Linux at命令,但似乎我能看到输出的唯一方法是将其重定向到文件,如下所示:

# at now + 1 minute
warning: commands will be executed using /bin/sh
at> date > afile.txt
at> <EOT>

这可以按预期工作但是有没有办法获得命令(在这个例子中为date)在终端屏幕上打印输出或打开另一个输出并在那里输出而不是文件?

我基本上是在尝试安排同步和构建等事情。

3 个答案:

答案 0 :(得分:12)

$ tty
/dev/pts/9
$ at now + 1 minute
at> date | tee /dev/pts/9
at> <EOT>
$ dim. juin  3 21:51:00 CEST 2012

或者打开一个新终端:

$ at now + 1 minute
at> DISPLAY=:0 /usr/bin/xterm -hold -e 'date'
at> <EOT>

或使用zenity对话框:

$ at now + 1 minute
at> DISPLAY=:0 /usr/bin/zenity --info --text "$(date)"
at> <EOT>

答案 1 :(得分:3)

而不是... > afile.txt at>使用> /dev/stdout 2> /dev/stderr

答案 2 :(得分:1)

在每个终端中使用tty命令识别它们:

$ tty
/dev/pts/0

$ tty
/dev/pts/1

假设这些TTY,要将第一个stdout重定向到第二个,请在第一个终端中运行:

exec 1>/dev/pts/1
  

注意:现在每个命令输出将显示在pts / 1

恢复pts / 0的默认行为stdout:

exec 1>/dev/pts/0

请参阅this video进行演示。