【问题标题】:Bash shell script command executes out of order when run through Bitrise通过 Bitrise 运行时,Bash shell 脚本命令乱序执行
【发布时间】:2021-01-04 15:47:58
【问题描述】:

在 bitrise 工作流程的脚本步骤中,我添加了以下 sn-p:

adb shell ps | grep screenrecord | awk ‘{print $2}’ | xargs adb shell kill

目的是杀死在上一步中启动的名为 screenrecord 的进程,当我在我的系统上测试它时它工作正常。但是,当通过 bitrise 触发此工作流时,它会失败并显示以下日志:

此问题的原因是什么以及如何解决?

【问题讨论】:

  • 一个常见的错误是grep 匹配自身。这里的 ngrep` 无论如何都是uselesspidof screenrecord 或者如果你没有 ps | awk '/[s]creenrecord/ { print $2 }' | xargs -r kill

标签: bash adb bitrise


【解决方案1】:

这很可能是因为awk 没有输出进程ID。一种可能的解决方法如下:

adb shell ps | grep screenrecord | sed -E 's/[ ]+/ /g' | cut -d' ' -f2 | xargs adb shell kill

其中awk 命令已替换为sed(以删除多个空格)和cut 一个(以获取进程ID)。

【讨论】:

    最近更新 更多