Ответ 1
А, нет, на самом деле это не вопрос цитирования для Bash, а цитирование для Samba. У вас есть следующее:
lpadmin -p PRINTER -v smb://$username:[email protected] -E
который Bash покорно расширяется до
lpadmin -p PRINTER -v smb://alice:[email protected]@SERVER -E
а затем клиентская библиотека Samba думает, что пароль заканчивается с первого знака @и он должен подключаться к серверу с именем [email protected]
, неважно, что вы не можете на самом деле поместить это имя в DNS.
lpadmin
происходит от CUPS, а не от Samba (вот его manpage) и, читая эти документы немного, я думаю вы можете использовать этот альтернативный синтаксис:
lpadmin -p PRINTER -U "${username}%${password}" -v smb://SERVER -E
Я удивлен, убегая @
, поскольку %40
не работает. Похож на ошибку в библиотеке клиента samba для меня.