可能已经回答,但我已经在互联网上查了一段时间,我无法弄明白为什么会这样。
我在shell中有这个功能
<div *ngFor="let guest of guests; let i = index">
现在我正在测试。我想在终端上创建自己的谷歌搜索。代码正在运行,但每次打开终端时,总是会出现此消息:
alias google= function google(){
if [[ -n "$@" ]]
then
echo "you typed $1"
fi
}
为什么一直向我展示这个?我错过了一步吗?我不习惯使用shell代码进行大量工作,所以可能是非常愚蠢的事情
BTW,我正在与ZSH合作
答案 0 :(得分:1)
您收到此消息的原因是,您实际上正在使用您的函数覆盖内置alias
。 zsh
只需在()
之前提供多个名称,即可创建具有多个名称的函数。例如:
foo bar baz () {
echo $0 $@
}
这定义了三个(相同的)名为foo
,bar
和baz
的函数。当您运行代码段时:
alias google= function google(){
# [...]
}
您还定义了三个功能:alias
,google=
和google
。 function
未被覆盖,因为它是一个zsh
保留字,但它既不是一个命令,也不是第一个命令。
因此,配置中的以下(或非常相似)行实际上并未通过运行 builtin alias
来定义别名:
alias globurl="noglob urlglobber"
相反,功能 alias
以globurl="noglob urlglobber"
作为第一个参数运行。
创建函数时不需要别名。试试这个:
function google () {
if [[ -n "$@" ]]
then
echo "you typed $1"
fi
}