【问题标题】:How to fix dirname: missing operand如何修复目录名:缺少操作数
【发布时间】:2019-09-04 14:35:36
【问题描述】:

我有一个创建时间跟踪器的 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 运行良好。

【问题讨论】:

    标签: regex bash npm


    【解决方案1】:

    dirname 没有得到任何文件时,你会得到这个错误。

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

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

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

    还要注意,我删除了xargs-n1 选项,因为dirname 可以采用多个文件名。

    【讨论】:

    • 使用该 sn-p 时,我在 Windows 上收到相同的错误。
    • 是的,打包完成后会返回一个 .md 和 .xls 文件
    • @Tammerg Weird...也许看看this
    猜你喜欢
    • 1970-01-01
    • 2021-12-20
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 2021-12-04
    • 2011-10-22
    • 1970-01-01
    相关资源
    最近更新 更多