Function 当我打开终端时,shell脚本函数始终显示globurl=noglob urlglobber
也许答案是肯定的,但我已经在互联网上查了一段时间,我不知道为什么会发生这种情况 我在shell中有这个函数Function 当我打开终端时,shell脚本函数始终显示globurl=noglob urlglobber,function,shell,unix,oh-my-zsh,Function,Shell,Unix,Oh My Zsh,也许答案是肯定的,但我已经在互联网上查了一段时间,我不知道为什么会发生这种情况 我在shell中有这个函数 alias google= function google(){ if [[ -n "$@" ]] then echo "you typed $1" fi } 现在我正在测试。我想在终端上创建我自己的谷歌搜索。代码正在运行,但每次我打开终端时,它都会显示以下消息: you typed globurl=no
alias google= function google(){
if [[ -n "$@" ]]
then
echo "you typed $1"
fi
}
现在我正在测试。我想在终端上创建我自己的谷歌搜索。代码正在运行,但每次我打开终端时,它都会显示以下消息:
you typed globurl=noglob urlglobber
为什么总是给我看这个?我是不是错过了一步?我不太习惯使用shell代码,所以这可能真的很愚蠢
顺便说一句,我正在与ZSH合作错误原因
您收到此消息的原因是,您实际上正在使用函数覆盖内置的别名zsh
允许只需在()
之前指定多个名称,即可创建具有多个名称的函数。例如:
foo bar baz () {
echo $0 $@
}
这定义了三个(相同的)函数,分别命名为foo
、bar
和baz
。运行代码段时:
alias google= function google(){
# [...]
}
您还定义了三个函数:alias
、google=
和google
<代码>函数
不会被覆盖,因为它是一个zsh
保留字,但它也不能作为命令使用,因为它不在第一位
因此,配置中的以下(或非常类似)行实际上并不是通过运行内置的别名来定义别名:
alias globurl="noglob urlglobber"
相反,函数alias
以globurl=“noglob urlglobber”
作为第一个参数运行
解决方案
创建函数时,不需要别名。请尝试以下方法:
function google () {
if [[ -n "$@" ]]
then
echo "you typed $1"
fi
}
我想要的是在我的终端上键入google,然后执行这个函数。如果没有别名,我将无法调用它