Как заставить backticks работать в ЗДЕСЬ документ? - PullRequest
1 голос
/ 01 ноября 2011

У меня есть script2:

# 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"

, и я вызываю script2 в script1:

ssh $user@$server 'bash -s' < script2

Работает нормально.Но у меня возникают проблемы при работе с обратным трюком в документе ЗДЕСЬ:

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

1 Ответ

2 голосов
/ 04 ноября 2011

Я думаю, что разумно бежать, потому что вы хотите перенести '$' на удаленный сайт.Вы, кажется, делаете опечатку на вашем последнем результате.Я снова попытался набрать здесь

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
...