Зависит от оболочки Korn ... последние версии AT&T ksh93 и mksh поддерживают это:
function echo_idx_array {
nameref arr=$1
idx=$2
echo "${arr[idx]}"
}
set -A test -- a b c
echo_idx_array test 1
В моей текущей оболочке это выводит «b».
Я понял это, когда собирался опубликовать вопрос.
Команда «чтение» в моем первом цикле покажет строку только после того, как в консоли появится символ новой строки. Это означает, что мой сценарий не мог ответить на приглашение, пока не появилась новая строка; это означало, что окно было закрыто.
Чтобы исправить это, я изменил проверку, чтобы искать строку, которая появляется над фактической подсказкой, за которой следует сон на 1/100 секунды перед выдачей моей записи.
Это решение позволяет автоматически останавливать процессы загрузки.