Команда не выполняется на каждом из прикрепленных экранов GNU - PullRequest
0 голосов
/ 02 ноября 2019

При подключении экранов GNU к уже созданному сеансу, а не на каждом экране, выполняется команда echo. Также все экраны получают правильное изменение названия замазки (я вижу это по циклу с ca или ca n), кроме одного.

Здесь код, который я написал

#!/bin/bash

image="router_beta"
declare -a routers
routers=( 101 102 103 104 105 106 107 108 109 )

# The scenario is the parent directory
scenario=$(pwd)
scenario=${scenario##*/}

# Start the main screen session and give it the name SESSION and detach it
screen -dm -S "SESSION" -t "$scenario"
# Give the SSH title the string CONSOLE
screen -p "$scenario" -X exec echo -ne "\033]0;CONSOLE\007"

# for each router attach a screen to the already existing session
# and give each screen a title
for router in ${routers[@]}; do
        screen_title="Scenario $scenario: $router"
# attach a screen to the existing SESSION and give it the title     $screen_title
        screen -S "SESSION" -X screen -t "$screen_title"
# since the SSH windows title doesn't change the name then execute the echo command so that it changes
        screen -p "$screen_title" -X exec echo -ne "\033]0;"$screen_title"\007"
        echo "Starting $image on router $router..."
# Write just the router ID in the screen
        screen -p "$screen_title" -X exec echo -ne "$router\n"
done

# then use screen -r <session> to connect to the SESSION and cycle through the screen by using C-a p or C-a n

Ожидаемый результат

Чтобы команда «echo $ router» выполнялась на каждом экране, но ничего не происходит, когда я подключаюсь через screen -r, я вижу приглашение bash и только на двух экранах (например, 104 и 109) я вижу, что отображается $Переменная Кроме того, все окна ssh с замазкой получают правильный заголовок, кроме одного (случайным образом).

...