我可以重新编程 pwd 命令以添加尾部斜杠吗?

我可以重新编程 pwd 命令以添加尾部斜杠吗?

当我使用该pwd命令时,它会打印 eg/opt而不是/opt/.我希望它打印尾部斜杠。但是,我尝试将以下行添加到我的~/.bash_aliases文件中:

alias pwd=" echo "${PWD}/" "

但它不能正常工作。它不是用尾部斜杠打印我当前的工作目录,而是打印我所在的工作目录在终端会话开始时,或者在我上次运行该source ~/.bashrc命令时。即使我将该命令命名为不同的名称(例如 )cwd,它仍然会以这种方式运行。

所以 - 我的问题是,我可以通过某种方式获得一个别名来打印我当前的工作目录,后跟一个尾部斜杠吗?

谢谢。

答案1

您的问题是$PWD别名定义的部分未加引号(您关闭之前的双引号字符串$PWD,然后开始一个新的字符串)。这意味着它是在定义别名时进行评估的。

相反,请使用单引号整体别名文本,或者更好的是*,使用 shell 函数来覆盖pwd命令。

像这样(或者echo如果必须的话使用):

alias pwd='printf "%s/\n" "$PWD"'

或者,使用 shell 函数:

pwd () {
    printf '%s/\n' "$PWD"
}

* Better = 避免复杂的引用,但仍然按照您期望的方式工作。

相关内容