我进入一个远程机器(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)进行转义,因为该变量在远程主机上运行。但是没用
尝试以下方法:
myfunction()
{
input=$1
count=$2
ssh user@host <<EOF
if [ $input = "comment" ];then
TotalCount=$count
echo "TotalCount is \$TotalCount"
else
echo "do something"
fi
EOF
}
myfunction comment 2
请注意,我添加了一个反斜杠以\$TotalCount
防止其在本地扩展。
您想对TotalCount
变量进行转义,因为该变量是远程定义的。如果$TotalCount
在本地求值,则它将(可能)求值为空字符串,这说明了为什么看不到任何输出。count
另一方面,该变量是在本地定义的,因此您不想对其进行转义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句