我有一个版本控制命令,我们必须手动运行所有已更改的文件。
是否可以将更改和添加的文件作为参数传递给另一个命令?
我已经尝试过此链接中提到的解决方案:is it possible to `git status` only modified files?,但它无效。
对于样本,我做了一个虚拟命令:
function notify(){
echo "*****************************************************************"
echo $1
echo "*****************************************************************"
}
我尝试将其用作:
git status -s |通知
git ls-files -m |通知
有没有办法将单个文件路径发送到这样的命令?
修改1:
正如mallaudin正确指出的那样,我错过了xargs
。但是添加它现在会引发另一个错误。
xargs:notify:没有这样的文件或目录
答案 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 "*****************************************************************"
}