防止BASH别名评估Shell启动时的语句



说我有以下别名。

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

相关内容

  • 没有找到相关文章

最新更新