无法退出yarn top命令的交互模式

无法退出yarn top命令的交互模式

我有一个位于 serverA 上的 bash 脚本。该脚本将 ssh 到 serverB 并运行yarn top 命令,提取指标并放入 serverA 上的文件(test.txt)中。以下是我正在使用的命令:

ssh -oStrictHostKeyChecking=no -i <key> username@hostname "yarn top" | head -5 | grep -w 'Applications' | awk '{print "Pending_apps" "\t" $7}' >> test.txt

所以这里的问题是,在我的脚本运行上述命令后,它会进入交互模式,并且仅当我手动给出 crtl+c 或退出信号/命令时才会退出。

无论如何,在运行上述命令并将输出重定向到 test.txt 后,脚本应该移动到下一个命令。也就是说,在命令提示符下运行上述命令后,它应该将输出重定向到 test.txt 文件,然后返回到命令提示符/终端

答案1

一个简单的建议是,当你得到你想要的东西时就打破管道:

ssh -oStrictHostKeyChecking=no -i <key> username@hostname "yarn top" | 
  head -5 | 
  grep -w 'Applications' | 
  awk '{print "Pending_apps" "\t" $7; exit}' >> test.txt

这告诉 awk 在收到第一行输入后退出(因为代码块没有条件)。

相关内容