将 for 循环从 Batch 转换为 Git Bash

Converting a for loop from Batch to Git Bash

我一直卡在 Windows 脚本中的特定 for 循环中,但找不到任何有关如何将其转换为 git Bash 等价物的帮助。代码在这里:

FOR /F "usebackq tokens=2" %%i IN (`tasklist /v ^| findstr /c:"IRCam_Data_Collector"`) DO taskkill /pid %%i

如果我将其更改为标准 shell,它会报错

syntax error near unexpected token `"tokens=2 delims=,"'

我的转换版本shell代码:

for //f "tokens=2 delims=," %i in (`tasklist //v | findstr //c:"IRCam_Data_Collector"`); do taskkill //pid %i; done

如有任何帮助,我们将不胜感激。是的,我知道 Git Bash 不同于 bash。我发现它必须对展开的变量迭代“For /f”做一些事情。由于我没有使用 Git Bash 的经验,所以我寻求帮助

这应该达到您的预期:

#!/usr/bin/env bash

for pid in $(tasklist //v | awk '/IRCam_Data_Collector/{print }'); do
    echo taskkill //F //pid $pid
done

一旦看到它符合您的要求,请删除 echo