为什么当我使用“ssh lpr”时会出现“没有默认打印机”错误,而当我 ssh 登录时却不会出现?

为什么当我使用“ssh lpr”时会出现“没有默认打印机”错误,而当我 ssh 登录时却不会出现?

我有一个远程(linux)服务器,我可以通过我的电脑(也是 linux)ssh 来打印我的东西。

如果我这样做,一切都会正常:

    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”可以给我正确的打印机名称。

答案1

请注意运行:

ssh <host> echo $PRINTER

...不会告诉您有关远程环境的任何信息,因为$PRINTER将由您的本地 shell 扩展。另一方面:

ssh <host> 'echo $PRINTER'

...会告诉你一些有用的信息(注意单引号)。

我怀疑发生的事情是您PRINTER在仅用于交互式登录的文件中设置了环境变量。您使用的是bash?还是其他什么?您在哪里设置PRINTER

答案2

可能是在或$PRINTER中设置的,对于非交互式会话,它会被忽略。/etc/profile~/.profile

您的测试 – ssh echo $PRINTER– 无效,因为变量已扩展本地,并且执行的是ssh echo printername

相关内容