2

Linuxコマンドを使用しようとしてatいますが、出力を確認するには、次のようにファイルにリダイレクトするしかないようです。

# 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 を想定して、最初の stdout を 2 番目にリダイレクトするには、最初のターミナルでこれを実行します。

exec 1>/dev/pts/1

注: これで、すべてのコマンド出力が pts/1 に表示されます

pts/0 のデフォルトの動作 stdout を復元するには:

exec 1>/dev/pts/0

デモンストレーションについては、このビデオを参照してください。

于 2017-09-29T14:28:36.830 に答える