Как прикрепить к сеансам экрана в цикле? - PullRequest
1 голос
/ 23 февраля 2012

Я использую сценарий 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

Я не могу подключиться к экрану, и возникает эта ошибка:

"Должен быть подключен к терминалу."

Как я могупреодолеть эту проблему и почему эта проблема возникает?

1 Ответ

2 голосов
/ 23 февраля 2012

Во всем цикле стандартный ввод поступает из txt-файла, поэтому экран не видит терминал.

Это должно быть сделано, но учтите, что здесь «строка» действительно означает «слово».

for line in `cat session_names.txt`; do
  echo $line
  screen -r $line
done
...