我正在remote-server
从localhost连接到我,并且想在上执行命令remote-server
。
可以正常工作:
ssh remote-server "hostname"
remote-server
我很困惑。为什么返回本地主机名而不是远程服务器的主机名?
ssh remote-server "print $HOST"
localhost
您的第二个代码示例:
ssh remote-server "print $HOST"
localhost
强大的Shellcheck工具将使用诊断SC2029标记该标志:
Bash扩展所有未转义/单引号的参数。这意味着有问题的代码与
ssh主机“ echo clienthostname”
并将打印出客户端的主机名,而不是服务器的主机名。
通过在$ HOSTNAME中转义$,它将按字面意义传输并在服务器上进行评估。
通过使用
ssh host "print \$HOST"
或者
ssh host 'print $HOST'
您可以阻止本地Shell扩展主机,而让外壳remote-server
扩展它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句