【问题标题】:Pass changed files path to another command将更改的文件路径传递给另一个命令
【发布时间】:2017-08-24 09:10:56
【问题描述】:

我有一个版本控制命令,我们必须使用所有更改的文件手动运行它。

是否可以将更改和添加的文件作为参数传递给另一个命令?

我已尝试此链接中提到的解决方案:is it possible to `git status` only modified files?,但它不起作用。

对于示例,我做了一个虚拟命令:

function notify(){
    echo "*****************************************************************"
    echo $1
    echo "*****************************************************************"
}

我尝试将其用作:

git 状态 -s |通知

git ls-files -m |通知

有没有办法将单个文件路径发送到此类命令?


编辑 1:

正如mallaudin 正确指出的那样,我错过了xargs。但是现在添加它会引发另一个错误。

xargs: notify: 没有这样的文件或目录

【问题讨论】:

  • @Downvoter 请发表评论

标签: git bash


【解决方案1】:

您可以使用 xargs

git ls-files -m | xargs notify

来自this问题

xargs 将可执行文件作为参数(包括自定义脚本)而不是环境中定义的函数。

将您的代码移动到脚本或使用 xargs 将参数传递给外部命令。

您可以将函数的代码移动到 单独的 bash 文件中,例如notify.bash 并像使用它一样

git ls-files -m | xargs notify.bash

【讨论】:

  • 不幸的是它没有用。它会引发以下错误:xargs: notify: No such file or directory。你还是对的
【解决方案2】:

Pipe output to bash function这可以帮助你。

function notify(){
    echo "*****************************************************************"
    read foo
    echo "*****************************************************************"
}

【讨论】:

    猜你喜欢
    • 2014-08-29
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 2011-10-29
    相关资源
    最近更新 更多