我有一个脚本2:
# This is script2 that is called by script1.
CURRENT_TOMCAT_PROCESS=`ps -ef | grep java | grep $TOMCAT_USER | grep -v grep | awk '{print $2}'`
echo "---> $CURRENT_TOMCAT_PROCESS"
我在script1中调用script2:
ssh $user@$server 'bash -s' < script2
工作正常。但是我在HERE文档中无法进行反复工作:
ssh $user@$server 'bash -s' <<EOF
CURRENT_TOMCAT_PROCESS=`ps -ef | grep java | grep $TOMCAT_USER | grep -v grep | awk '{print \$2}'`
echo "---> $CURRENT_TOMCAT_PROCESS"
EOF
(如果我没有将它分配给变量并且只打印出来它工作正常,但是当我尝试使用反引号将其分配给CURRENT_TOMCAT_PROCESS变量时,它不起作用。)
我该如何做到这一点?
谢谢,
=============================================== ================================
我可以通过以下方式使其工作。涉及到很多逃避:
ssh $user@$server 'bash -s' <<EOF
CURRENT_TOMCAT_PROCESS="\`ps -ef | grep java | grep $TOMCAT_USER | grep -v grep | awk '{print \$2}'\`"
echo "---> \$CURRENT_TOMCAT_PROCESS"
EFO
答案 0 :(得分:2)
我认为逃避是合理的,因为你想将'$'转移到远程站点。你似乎在最后的结果上写了一个错字。我试着再次在这里打字
TOMCATE_USER=foo
ssh $user@$server 'bash -s' <<EOF
CURRENT_TOMCAT_PROCESS="\`ps -ef | grep java | grep $TOMCAT_USER | grep -v grep | awk '{print \$2}'\`"
echo "---> \$CURRENT_TOMCAT_PROCESS"
EOF