将 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
。
我一直卡在 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
。