Bash - 使用$ *时得到奇怪的参数

时间:2017-11-29 11:33:35

标签: bash

当我定义别名时:

alias strange="echo $*"

然后

strange one two three

输出:

completion-ignore-case on one two three

相似,对于这个别名:

alias strange2="echo $1 $2 $3 $4"
strange2 one two three four
completion-ignore-case on one two three four

我在Windows上,使用git-bash ... 任何想法为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

使用双引号不会阻止在设置别名时发生扩展strange将别名为echo $*,其中$ *将替换为当前的shell参数。使用单引号来阻止扩展,并使用alias strange查看当前别名定义。