У меня есть удаленный (linux) сервер, на который я отправляю ssh с моего (также linux) компьютера для печати моих материалов.
Все работает, если я делаю:
ssh ${remote_server}
(now in remote server)
lpr readme.txt
Или:
ssh ${remote_server} lpr readme.txt -P$PRINTER
(this works too)
Но если я это сделаю:
ssh ${remote_server} lpr readme.txt
(I get a "there-is-no-default-printer" error.)
Я установил переменную окружения $ PRINTER так, что "ssh echo $ PRINTER" дает мне правильное имя принтера.
Обратите внимание, что работает:
ssh <host> echo $PRINTER
... ничего не сообщает об удаленной среде, потому что $PRINTER
будет расширен вашей локальной оболочкой. С другой стороны:
ssh <host> 'echo $PRINTER'
... расскажет что-нибудь полезное (обратите внимание на одинарные кавычки).
Я подозреваю, что происходит то, что вы устанавливаете PRINTER
переменная среды в файле, который используется только для интерактивного входа в систему. Ты используешь bash
? Или что-то другое? Где ты сидишь PRINTER
?
Может быть что $PRINTER
установлен в /etc/profile
или ~/.profile
, который игнорируется для неинтерактивных сеансов.
Ваш тест - ssh echo $PRINTER
- неверно, так как переменная расширяется локально, и то, что выполняется, ssh echo printername
.