使 shell 命令在 git 挂钩中可用
make shell commands available in git hook
目标是让用户在 clone/checkout 回购后可以使用一些命令集。
git 挂钩文件
#!/bin/sh
echo $PWD/dev-commands.sh
source $PWD/dev-commands.sh
我想在 git 钩子名称 dev-commands.sh
之后提供的命令
#!/bin/sh
function greet() {
echo Hello
}
这似乎无法使命令可用。如果我在目录中手动 运行 source dev-commands.sh 它确实使 greet
命令可用..
有什么建议吗?
来源函数在来源它们的 shell 中可用,而不是其 parent shell 中。这就是为什么当您编写 shell 脚本时,它可以使用自己的函数而不必担心会干扰其调用者的命令的含义。
( doit() { echo hi; }; doit ); doit
例如,会说 hi
然后很可能会抱怨 -bash: doit: command not found
或等效的消息,因为 parens 在那里将 doit
放入子 shell,它有自己的环境,就像git hooks.
在没有他人积极合作的情况下即时改变某人的 shell 命名空间可以而且将被准确地描述为恶意软件。
包括他们可以根据需要获取的设置命令。
目标是让用户在 clone/checkout 回购后可以使用一些命令集。
git 挂钩文件
#!/bin/sh
echo $PWD/dev-commands.sh
source $PWD/dev-commands.sh
我想在 git 钩子名称 dev-commands.sh
之后提供的命令#!/bin/sh
function greet() {
echo Hello
}
这似乎无法使命令可用。如果我在目录中手动 运行 source dev-commands.sh 它确实使 greet
命令可用..
有什么建议吗?
来源函数在来源它们的 shell 中可用,而不是其 parent shell 中。这就是为什么当您编写 shell 脚本时,它可以使用自己的函数而不必担心会干扰其调用者的命令的含义。
( doit() { echo hi; }; doit ); doit
例如,会说 hi
然后很可能会抱怨 -bash: doit: command not found
或等效的消息,因为 parens 在那里将 doit
放入子 shell,它有自己的环境,就像git hooks.
在没有他人积极合作的情况下即时改变某人的 shell 命名空间可以而且将被准确地描述为恶意软件。
包括他们可以根据需要获取的设置命令。