Windows批处理FOR /F循环转换为Git Bash等效代码报错如何解决
问题根因
你遇到的语法报错是因为直接将Windows批处理的FOR /F语法套用到了Bash环境,Bash的for循环不存在/f类参数,两者的循环语法逻辑完全不同。
Git Bash 等效实现代码
和原批处理逻辑完全一致的代码如下:
tasklist /v | findstr /c:"IRCam_Data_Collector" | awk '{print $2}' | while read -r pid; do taskkill /pid "$pid"; done
如果你习惯用Bash自带的文本过滤工具,也可以用grep替代findstr,写法更简洁:
tasklist /v | grep "IRCam_Data_Collector" | awk '{print $2}' | xargs -I {} taskkill /pid {}
逻辑说明
- 前半部分
tasklist /v | findstr /c:"IRCam_Data_Collector"和原批处理逻辑完全一致,输出所有包含目标进程名的进程条目 awk '{print $2}'对应原批处理的tokens=2参数,提取进程条目中第二列的PID值- 后半部分的循环结构逐行读取提取到的PID,调用
taskkill命令终止对应进程,完全等效原批处理的DO逻辑
内容的提问来源于stack exchange,提问作者t.abraham
相关产品推荐
相关产品推荐

