将更改的文件路径传递给另一个命令

时间:2017-03-30 12:30:10

标签: git bash

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

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

我已经尝试过此链接中提到的解决方案:is it possible to `git status` only modified files?,但它无效。

对于样本,我做了一个虚拟命令:

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

我尝试将其用作:

  

git status -s |通知

     

git ls-files -m |通知

enter image description here

有没有办法将单个文件路径发送到这样的命令?

修改1:

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

  

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

2 个答案:

答案 0 :(得分:2)

您可以使用 xargs

git ls-files -m | xargs notify

来自this问题

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

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

您可以将功能的代码移动到单独的 bash文件,例如notify.bash并像

一样使用它
git ls-files -m | xargs notify.bash

答案 1 :(得分:0)

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

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