【发布时间】:2026-02-01 05:40:01
【问题描述】:
我使用 bash 脚本以“分离”模式生成屏幕会话(使用 -d -m 选项) 并命名它们(通过 -S ),然后我附加到它们以给出一些命令 (通过 -r ):
#!/bin/bash
screen -d -m -S session_name_1
screen -d -m -S session_name_2
screen -d -m -S session_name_3
...
screen -r session_name_1
screen -r session_name_2
screen -r session_name_3
当我以循环方式执行整个过程时,我无法附加到屏幕上 (文件 session_names.txt 是一个每行包含一个会话名称的文件):
#!/bin/bash
while read line; do
echo $line
screen -d -m -S $line
done < session_names.txt
while read line; do
echo $line
screen -r $line
done < session_names.txt
我无法附加到屏幕并出现此错误:
“必须连接到终端。”
我该如何克服这个问题以及为什么会出现这个问题?
【问题讨论】:
-
您是否有理由不使用
.screenrc来启动 1 个屏幕副本,其中 N 个终端可用,只需将名称等放入该 cfg 文件中?祝你好运。
标签: linux bash session loops gnu-screen