【发布时间】:2012-04-28 03:28:13
【问题描述】:
我想让主机 A 通过ssh 在主机 B、C、D 上运行脚本。脚本需要知道主机的主机名(是 B、C 还是 D?)。
我在主机 A 上执行以下脚本时遇到以下问题:
#!/bin/sh
ssh Adam@$1 <<'EOF'
echo 12345`hostname`ABC
EOF
对于主机名myhostB,我得到ABC45myhostB 而不是12345myhostBABC。
主机 A 是 Ubuntu 服务器 10.4 32 位,主机 B、C、D 是从 cygwin 运行 openssh 的 Windows XP。
【问题讨论】:
-
看起来
hostname的输出包含一个回车符 (\r) -
你试过 echo "12345
hostnameABC" 吗? -
>看起来主机名的输出包含回车 是的,确实如此。但只有在远程执行时。当在同一台机器上本地执行时,相同的命令也可以正常工作。
-
如果您手动在
myhostB本身而不是通过ssh运行 echo 命令会发生什么?