【发布时间】:2017-09-26 20:50:51
【问题描述】:
我想在 git 别名中使用 bash 函数。所以我将此添加到我的.bashrc:
fn() {
echo "Hello, world!"
}
export -f fn
还有我的.gitconfig:
[alias]
fn = !fn
但随后git fn 产生错误:
fatal: cannot run fn: No such file or directory
fatal: While expanding alias 'fn': 'fn': No such file or directory
这是在 git 别名定义中使用 bash 函数的正确方法吗?
【问题讨论】:
-
我假设当 Git 运行 bash 命令时,它会在自己的进程中执行此操作,这很可能会跳过您的
.bashrc。因此,您必须在该别名行中定义.gitconfig内的函数。 – 或者,您可以创建一个git-fn文件并将其放在 PATH 中,然后git fn也应该可以工作(至少 iirc) -
@poke,
export -f的重点是定义在环境中,所以git调用的shell没有有 source.bashrc--如果它实际上是 bash。如果是/bin/sh,那么问题在于手头有哪个实现。 -
@CharlesDuffy 有趣,我不知道你可以将函数放入环境中,这很酷。谢谢!
标签: git bash function config alias