Mot*_*tys 6 bash zsh busybox dash-shell
我希望第二行foo代替command not found:
foo
command not found
$ alias foo="echo bac" ; foo; -bash: foo: command not found $ foo bac $
第二行为什么不说foo?使用以下shell进行测试,行为相同:
Tom*_*ech 7
您正在看到的行为在Bash参考手册(强调我的)中有所描述:
关于别名的定义和使用的规则有些令人困惑.在执行该行上的任何命令之前,Bash始终会读取至少一个完整的输入行.读取命令时会扩展别名,而不会在执行时扩展别名.因此,在读取下一行输入之前,与另一个命令出现在同一行上的别名定义不会生效.该行上别名定义后面的命令不受新别名的影响.
据推测,其他炮弹也以这种方式行事.
归档时间:
10 年,3 月 前
查看次数:
276 次
最近记录: