Что происходит, так это то, что grep -q '[^ [: space:]]'
обрабатывает оставшиеся строки стандартного ввода (что и делает grep
по умолчанию, если вы не вводили его), ничего не оставляя для следующего чтения
- указатель файла находится в EOF. Вам понадобится grep -q '[^ [: space:]]' <<< "$ line1"
.
Простой способ избежать такой ошибки - всегда использовать дескриптор файла, отличный от стандартного, если ваш код цикла нетривиален. Есть много способов проглотить весь стандартный ввод за одну команду, но я еще не встречал программ, которые пытались бы читать FD 3 и выше по умолчанию.
Ваш клиент должен принять ca-цепочку вашего сервера.
Так что, если вы используете самодельный сертификат, это лучший вариант.
Обновление: Дополнительная информация о CA-цепочках и корневых CA.
Сгенерировать ca.crt на стороне сервера . И да, вы должны скопировать его на стороне клиента.