Shell 如何在后台运行screen命令并将数据记录到日志文件中?

Shell 如何在后台运行screen命令并将数据记录到日志文件中?,shell,terminal,zsh,Shell,Terminal,Zsh,我有一个Z Shell(zsh)脚本,它执行一系列命令在我的计算机(Mac)上安装设备。其中一个命令是从设备读取MAC地址,设备第一次开机时将执行此操作 在设备通过串行发送数据之前,设备上有一个延迟,允许执行串行捕获命令,我想捕获设备将打印的mac地址,然后在大约5秒钟后终止串行捕获(终止进程),并继续执行脚本。我正在尝试使用screen命令执行此操作。我可以记录到日志,但我不能在后台运行屏幕 注: -L将文件写入名为screenlog.0 我有以下命令来执行此操作 screen -L /dev

我有一个Z Shell(
zsh
)脚本,它执行一系列命令在我的计算机(Mac)上安装设备。其中一个命令是从设备读取MAC地址,设备第一次开机时将执行此操作

在设备通过串行发送数据之前,设备上有一个延迟,允许执行串行捕获命令,我想捕获设备将打印的mac地址,然后在大约5秒钟后终止串行捕获(终止进程),并继续执行脚本。我正在尝试使用screen命令执行此操作。我可以记录到日志,但我不能在后台运行屏幕

注:
-L
将文件写入名为
screenlog.0

我有以下命令来执行此操作

screen -L /dev/tty.usbserial-D3086KU0 115200
然而,在末尾添加一个符号并不像我期望的那样在后台运行,它仍然会把我带到屏幕上

screen -L /dev/tty.usbserial-D3086KU0 115200 &

我如何使屏幕工作并在后台捕获串行输出,或者如何使用其他等效工具实现这一点?

老实说,我以前从未尝试过屏幕。但是,在手册页中,我看到:

-d-m启动屏幕处于“分离”模式。这将创建一个新会话,但不会附加到该会话这对系统启动很有用 脚本

-D-m这也会以“分离”模式启动屏幕,但不会产生新的进程。如果会话终止,则该命令退出

我想试试这个:-)