我有一个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
可以采用多个文件名,因此我删除了xargs
的dirname
选项。关于regex - 如何修复目录名:缺少操作数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57790706/