我有一个NPM包,它创建时间跟踪器,它使用for in定位MD文件的标题,然后将其转换为跟踪器。当前在Mac上运行时,它工作正常,在Windows上我收到dirname:missing operand

我尝试在运行良好的Mac上运行,然后又在Windows上运行,它吐出了错误。正在搜寻解决方案,但未找到适合我的情况的解决方案

for file in $(git diff HEAD --name-only | grep -E '\-Day\-LessonPlan\.md$' | xargs -n1 dirname);
do
  ./node_modules/.bin/tt-generator $file;
done


我希望它能够运行,它将访问NPM程序包并为我们创建时间跟踪器。目前在Windows上,我只收到dirname: missing operand。 Mac工作正常。

最佳答案

dirname没有任何文件时,您会收到此错误。

这意味着grep命令在两台计算机上的工作方式不同。

可能的解决方法是让git过滤文件名:

git diff --name-only "*-Day-LessonPlan.md" | xargs dirname


另请注意,由于-n1可以采用多个文件名,因此我删除了xargsdirname选项。

关于regex - 如何修复目录名:缺少操作数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57790706/

10-12 17:54