UNIX:将awk输出存储到不起作用的变量中

问题描述 投票:0回答:1

我知道关于将awk输出保存到堆栈溢出时可用的变量有太多问题,但是我已经尝试了所有可能的答案,但似乎没有用。请使用以下代码帮助我。

我已经尝试了以下类型的解决方案,但是在回显时,它们全都给了我空白的输出。

案例1:

sshpass -p$password ssh -T -o StrictHostKeyChecking=no $hostname <<EOF
          tomcat=`ps -ef | grep -i tomcat | grep -i bootstrap | awk '{print \$2}' `
          httpd=`systemctl status httpd | awk 'NR==3 {print \$2}'`
          echo $tomcat
          echo $httpd
EOF

案例2:

sshpass -p$password ssh -T -o StrictHostKeyChecking=no $hostname <<EOF
          tomcat=$(ps -ef | grep -i tomcat | grep -i bootstrap | awk '{print \$2}')
          httpd=$(systemctl status httpd | awk 'NR==3 {print \$2}')
          echo $tomcat
          echo $httpd
EOF

案例3:

sshpass -p$password ssh -T -o StrictHostKeyChecking=no $hostname <<EOF
          tomcat=`ps -ef | grep -i tomcat | grep -i bootstrap | awk '{print $2}' `
          httpd=`systemctl status httpd | awk 'NR==3 {print $2}'`
          echo $tomcat
          echo $httpd
EOF

案例4:

sshpass -p$password ssh -T -o StrictHostKeyChecking=no $hostname <<EOF
          tomcat=$(ps -ef | grep -i tomcat | grep -i bootstrap | awk '{print $2}')
          httpd=$(systemctl status httpd | awk 'NR==3 {print $2}')
          echo $tomcat
          echo $httpd
EOF

请帮帮我。

谢谢,

Sid

bash unix awk heredoc
1个回答
0
投票

您尝试过这种方式吗?

tomcat=$(sshpass -p$password ssh -T -o StrictHostKeyChecking=no $hostname "ps -ef | grep -i tomcat | grep -i bootstrap | awk '{print $2}'")
httpd=$(sshpass -p$password ssh -T -o StrictHostKeyChecking=no $hostname "systemctl status httpd | awk 'NR==3 {print $2}'")

echo $tomcat
echo $httpd
© www.soinside.com 2019 - 2024. All rights reserved.