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