我正在 ssh-in 到远程机器 (ubuntu) 并尝试在其中执行一个小脚本。脚本如下所示:
myfunction()
{
input=$1
count=$2
ssh ubuntu@ip <<EOF
if [ $input = "comment" ];then
TotalCount=$count
echo "TotalCount is $TotalCount"
else
echo "do something"
fi
EOF
}
myfunction comment 2
它通过 SSH 连接到服务器,但打印为空
输出: TotalCount 是
我试图转义变量(TotalCount=\$count),因为它在远程主机上运行。但是没有用
解决方案
试试这个:
请注意,我添加了一个反斜杠以
\$TotalCount
防止它在本地扩展。解释
您想转义该
TotalCount
变量,因为该变量是远程定义的。如果$TotalCount
在本地进行评估,那么它将(可能)评估为空字符串,这解释了为什么您没有看到任何输出。另一方面,该count
变量是在本地定义的,因此您不想转义它。