Если вы хотите использовать переменные в строке, которую вы отправили через ssh, заключите эту строку в "
.Внутри строки вы должны использовать одинарную кавычку '
или экранировать каждую двойную кавычку \"
.
Ваша проблема возникает из-за того, что вы «закрываете» строку перед тем, как ее использовать.Следующее должно работать.
for SERVER in $(cat some.txt); do
ssh -q -o StrictHostKeyChecking=no root@$SERVER "
echo 'm2madm ALL=(ALL:ALL) NOPASSWD:/sbin/iptables -L' | sudo EDITOR='tee -a' visudo
"
done
Ps есть сайт проверки орфографии оболочки, в котором вы можете проверить свой код.Я не знаю, какой, но я добавлю это как комментарий ниже моего ответа.