为什么我在使用“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环境variables,使得“ssh echo $ PRINTER”给了我正确的打印机名称。

注意运行:

 ssh <host> echo $PRINTER 

…远程环境没有任何说明,因为$PRINTER将被本地shell展开。 另一方面:

 ssh <host> 'echo $PRINTER' 

…会告诉你一些有用的东西(注意单引号)。

我怀疑发生了什么事是,你只是设置PRINTER环境variables在一个文件,只能来源于交互式login。 你使用bash吗? 或者是其他东西? 你在哪里设置PRINTER

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

你的testing – ssh echo $PRINTER – 是无效的,因为这个variables是在本地展开的,执行的是ssh echo printername