command $(printf -- "--option=%s " $(<domains.txt)) --output=file.ext
é a maneira mais compacta que conheço.
O que você estava tentando deveria ter sido
command $(while read baddomains ; do echo -n "--option=$baddomains " ; done < domains.txt) --output=file.ext
mas não funcionou para você porque você usou as aspas erradas no subshell e incluiu todo o $()
entre aspas duplas, de modo que command
viu o todo como um argumento.
The list of domains includes Cyrillic characters, if that matters.
Não importa esses comandos, mas, se eles não forem devidamente codificados, como eles podem ser nomes de domínio válidos? Se eles são puncionados, o shell não verá nenhum caractere cirílico. Será feliz processar sua entrada corretamente em ambos os casos.