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