Вы правильно настроили конфигурацию, чтобы запретить вход в систему root.
Похоже, вам нужно установить права доступа к файлу authorized_keys
администратора на 600.
не использует массивы, но хранит счетчик, чтобы определить, когда ждать.
count=0
while read -r line; do
dosomething "$line" &
((++count % 35 == 0)) && wait
done < file
Кстати, вам не нравится переменная y
?
Одна большая проблема с вашим кодом :вы должны успешно прочитать все 35 строк до dosomething
с ними. во время обработки файла предположим, что вы читаете a
и b
, но нажимаете EOF при попытке чтенияc
--read
возвращает не -ноль, условие while не выполняется, и цикл прерывается без обработки $a
и $b
.
С массивом, не проще:
mapfile -t lines < file
len=${#lines[@]}
i=0
while ((i < len)); do
for _ in {1..35}; do
dosomething "${lines[i]}" &
((i++))
((i == len)) && break
done
wait
done