LINUX.ORG.RU

История изменений

Исправление Zmicier, (текущая версия) :

Ну тот же самый алгоритм может выглядеть как-то так:

#!/bin/bash

wait=1
while [[ $wait ]]; do
    unset wait
    for server_file in /opt/msm/servers/*; do
        for screen_file in /var/run/screen/S-msm/*; do
            IFS='.' read pid sessionname <<< "${screen_file##*/}"
            if [[ ${server_file##*/} == $sessionname ]]; then
                wait=1
                printf >&2 'Wainting for %s\n' "$sessionname"
                sleep 5
            fi
        done
    done
done

(Не проверял. Могут быть ошибки вплоть до синтаксических.)

Но вообще ожидать завершения процессов разумнее по их идентификаторам (PID’ам), а вовсе не по файлам, которые они за собой должны убирать, но могут и не убрать — как получить pid сессии «Скрина» я вам уже подсказал, про сервера — это только вы знаете.

Исходная версия Zmicier, :

Ну тот же самый алгоритм может выглядеть как-то так:

#!/bin/bash

wait=1
while [[ $wait ]]; do
    unset wait
    for server_file in /opt/msm/servers/*; do
        for screen_file in /var/run/screen/S-msm/*; do
            IFS='.' read pid sessionname <<< "${screen_file##*/}"
            if [[ ${server_file##*/} == $sessionname ]]; then
                wait=1
                printf >&2 'Wainting for %s\n' "$sessionname"
                sleep 5
            fi
        done
    done
done

Не проверял. Могут быть ошибки вплоть до синтаксических.