说我有以下别名。
alias pwd_alias='echo `pwd`'
这个别名不是"动态"。它在外壳启动后立即评估pwd
。无论如何,是否有延迟对tick中表达式的评估直到别名的运行时的评估?
您真正想要的是一个函数,而不是别名。
pwd_alias() {
echo "$PWD"
}
别名只能替换文本。任何具有复杂性的东西都需要功能。
正如乔丹姆所说,别名无非是替换文本。
如果您希望Echo的论点是BASH扩展的PWD的输出,那么我不明白您的问题。
如果您希望将回声的论点保存在pwd中,例如,确实有可能:
alias a="echo '`pwd`'"
因此,如果您没有回声,那么您的运行时间会在其运行时进行反向引用扩展,也许就是您想要的。
我不相信您可以在Shell启动时更改评估。由于创建别名的过程在Shell start处运行,因此评估pwd
。您可以简单地将别名更改为仅运行pwd
而无需回声时pwd
输出而无需回声。解决此问题的一种简单方法是,如果您不想使用别名。
#!/bin/bash
pwd