我希望第二行是foo
而不是command not found
$ alias foo="echo bac" ; foo;
-bash: foo: command not found
$ foo
bac
$
为什么第二行不写foo
?使用以下shell进行测试,相同的行为:
发布于 2016-07-22 05:05:36
您所看到的行为在Bash参考手册 (强调我)中有描述:
关于别名的定义和使用的规则有些混乱。在执行该行上的任何命令之前,Bash总是读取至少一行完整的输入。别名是在读取命令时展开的,而不是在执行命令时展开的。因此,--显示在同一行上的别名定义--在下一行输入被读取之前不会生效。该行中别名定义之后的命令不受新别名的影响。
想必其他的壳也是这样的。
https://stackoverflow.com/questions/38526612
复制相似问题