Bash 我如何修改zsh以在$PATH之前使用本地目录自动完成'source'?
我无法计算我键入的次数:Bash 我如何修改zsh以在$PATH之前使用本地目录自动完成'source'?,bash,shell,sh,zsh,zsh-completion,Bash,Shell,Sh,Zsh,Zsh Completion,我无法计算我键入的次数:source en只在屏幕上留下一堆乱七八糟的文本,因为它源于程序env而不是本地env.sh 我试着制作一个简单的函数来检测这个特定的用例,但没有成功 这就是我所尝试的: source () { if [ "$1" == "env" ] then source ./env.sh else source $@ fi } 我意识到source是一个shell命令,这可能是它不起作用的原因,但我并不真正关心它是
source en
只在屏幕上留下一堆乱七八糟的文本,因为它源于程序env而不是本地env.sh
我试着制作一个简单的函数来检测这个特定的用例,但没有成功
这就是我所尝试的:
source () {
if [ "$1" == "env" ]
then
source ./env.sh
else
source $@
fi
}
我意识到source是一个shell命令,这可能是它不起作用的原因,但我并不真正关心它是如何实现的,我只想在本地目录之前停止在$PATH上寻找二进制文件
干杯 它不起作用的原因是递归调用函数。使用
内置源代码
调用内置源代码而不是函数源代码:
source () {
if [ "$1" == "env" ]
then
builtin source ./env.sh
else
builtin source $@
fi
}
它不起作用的原因是递归调用函数。使用
内置源代码
调用内置源代码而不是函数源代码:
source () {
if [ "$1" == "env" ]
then
builtin source ./env.sh
else
builtin source $@
fi
}
不要重写常规命令(
source
)来处理特殊情况,而是使
处理特殊情况的新命令
locenv () {
source ./env.sh
}
不要重写常规命令(
source
)来处理特殊情况,而是使
处理特殊情况的新命令
locenv () {
source ./env.sh
}