我正在尝试使用Linux at
命令,但似乎我能看到输出的唯一方法是将其重定向到文件,如下所示:
# at now + 1 minute
warning: commands will be executed using /bin/sh
at> date > afile.txt
at> <EOT>
这可以按预期工作但是有没有办法获得命令(在这个例子中为date
)在终端屏幕上打印输出或打开另一个输出并在那里输出而不是文件?
我基本上是在尝试安排同步和构建等事情。
答案 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进行演示。