当我使用该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 = 避免复杂的引用,但仍然按照您期望的方式工作。