alias xxx=echo && xxx ok
不起作用,因为别名在之后不可用&&
。但一行代码最适合我的任务。
如何定义别名并在 bash 的同一行中使用?
答案1
从bash
手册中:
有关别名的定义和使用的规则有些令人困惑。在执行该行上的任何命令之前,Bash 总是至少读取一整行输入。别名在读取命令时展开,而不是在执行命令时展开。 因此,与另一个命令出现在同一行的别名定义在读取下一行输入之前不会生效。该行上别名定义后面的命令不受新别名的影响。
在许多其他 shell 中也是如此。
答案2
您可以通过执行以下操作来解决 shell 限制:
eval 'alias xxx=echo
xxx ok'