linux 多终端情况下把终端1的命令返回值在终端2上打印

目标:在多个终端的时候,想把脚本执行结果输出到其他已连接的终端会话

script

使用 script 命令记录当前终端会话输入与输出,并在其他会话播放

  • 记录:

    shell
    1
    script -q -f -t 2>time.file -a scriptfile

    退出录制

    1
    exit
  • 播放:

    由于 ubuntu 上默认自带的 scriptreplay 无法使用 -f 实时刷新,所以选择使用 tail -f 打印显示

    shell
    1
    tail -f scriptfile

重定向

重定向当前终端输出到其他会话

  1. 打开两个终端连接

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

    shell
    1
    exec 1>/dev/pts/0

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

  3. 演示

  4. 恢复默认行为标准输出 pts/0

    shell
    1
    exec 1>/dev/pts/1

    可以使用 who 查看当前连接的会话

参考文章:

评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...