我有一个远程(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 。