Почему я получаю сообщение об ошибке "Нет принтера по умолчанию" при использовании "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" давал мне правильное имя принтера.

2 ответа

Решение

Обратите внимание, что работает:

ssh <host> echo $PRINTER

... ничего не говорит об удаленной среде, потому что $PRINTER будет расширен вашей локальной оболочкой. С другой стороны:

ssh <host> 'echo $PRINTER'

... скажу вам кое-что полезное (обратите внимание на одинарные кавычки).

Я подозреваю, что происходит то, что вы устанавливаете PRINTER Переменная окружения в файле, которая получена только для интерактивных входов в систему. Ты используешь bash? Или что-то другое? Где вы сидите PRINTER?

Это может быть $PRINTER установлен в /etc/profile или же ~/.profile, который игнорируется для неинтерактивных сессий.

Ваш тест - ssh echo $PRINTER - недопустимо, поскольку переменная раскрывается локально, и выполняется ssh echo printername,

Другие вопросы по тегам