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