访问远程服务器上的导出变量

时间:2018-02-17 06:31:41

标签: linux ssh

当我尝试在if loop下访问远程服务器上的导出变量时,下面不起作用:

VAR=`grep pattern ./checklist | cut -f7`
echo "Port number to be checked for service is $VAR" #working fine
export VAR
ssh -tTq user@node <<EOF
echo "checking service on \`hostname\`";
echo "export value received is $VAR"
echo \$(ps -ef | grep -v grep | grep port=$VAR | wc -l)
if [ \$(ps -ef | grep -v grep | grep port=$VAR | wc -l) == 0 ];
then
echo "service is DOWN"
elif [ \$(ps -ef | grep -v grep | grep port=\$VAR | wc -l) == 1 ];
then
echo "Service is Up"
else
echo "Multiple instances running of selected service"
fi
EOF

if循环收到的输出不符合预期:

运行所选服务的多个实例 +'['1 == 2']'

而不是1 == 1条件匹配

1 个答案:

答案 0 :(得分:0)

自己找到答案。 在上面的问题中,我在错误的elif条件下错过了$ VAR。

LL:强/单引号&#39;当通过ssh使用导出变量时,应该避免在远程主机上执行cmds。

在调用&lt;&lt;之间存在的导出变量时,避免使用\ on under EOF ..... EOF。 (在上面的示例中为$ VAR)