2012-04-16 86 views
0

我想在主机B,C,D上有主机运行脚本ssh。该脚本需要知道主机的主机名(是B,C还是D?)。如何在远程运行的脚本中询问`hostname`

我碰到下面的问题来了,当我执行主机A下面的脚本:

#!/bin/sh 
ssh [email protected]$1 <<'EOF' 
echo 12345`hostname`ABC 
EOF 

我得到ABC45myhostB,而不是12345myhostBABC主机名myhostB

主机A是Ubuntu服务器10.4 32位,主机B,C,D是Windows XP,从cygwin运行openssh。

+2

貌似的'hostname'包括回车符('\ r ') – mob 2012-04-16 19:23:43

+0

您是否尝试过echo“12345'hostname'ABC”? – 2012-04-16 19:49:54

+0

>看起来像主机名输出包含回车 是的,它的确如此。但只有远程执行。当在同一台机器上本地执行时,相同的命令工作得很好。 – 2012-04-16 20:00:15

回答

0

你可能想使用环境变量HOSTNAME而不是

回声ABC $ {HOSTNAME}高清或类似的东西

0
uname -a | grep -i cygwin && { 
echo 12345${COMPUTERNAME}ABC 
} || echo 12345`hostname`ABC