2

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

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

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

我基本上是在尝试安排诸如同步和构建之类的事情。

4

3 回答 3

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>
于 2012-06-03T19:52:15.790 回答
3

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

于 2012-06-03T19:53:33.837 回答
1

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

$ tty
/dev/pts/0

$ tty
/dev/pts/1

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

exec 1>/dev/pts/1

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

要恢复 pts/0 的默认行为标准输出:

exec 1>/dev/pts/0

请参阅此视频进行演示。

于 2017-09-29T14:28:36.830 回答