Назад | Перейти на главную страницу

Почему я получаю сообщение об ошибке «Нет принтера по умолчанию» при использовании «ssh lpr», но не при использовании ssh?

У меня есть удаленный (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.