我使用bash脚本以“分离”模式生成屏幕 session (使用-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 是一个文件,其每一行都包含一个 session 名称):
#!/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
我无法连接到屏幕,并且发生此错误:
我该如何克服这个问题以及为什么会出现这个问题?
最佳答案
在整个循环中,标准输入来自txt文件,因此屏幕看不到终端。
应该这样做,但是请注意,“行”在这里实际上意味着“单词”。
for line in `cat session_names.txt`; do
echo $line
screen -r $line
done