在Fish Shell中获取当前目录(没有完整路径)

Jul*_*man 9 prompt fish

我的一个伙伴终于让我开始使用Fish Shell,我试图将它设置为类似于我的Bash.将PS1在我.bash_profile列出的当前目录我在,随后>.然而,它不是绝对路径(例如/Users/me/Documents/...~/Documents/...).如果我在/Users/me/Documents/projects/Go/project1/,提示就会说project1 >.

是否有\W替代可用于Bash替换的鱼壳?再一次,我只想要我所在的文件夹,而不是完整的路径.我知道你可以使用echo (pwd)所有这些.

我已经查看了该basename程序,echo "${PWD##*/}"但是这些似乎只适用于Bash.

Jul*_*man 14

取自@Jubobs的回答: basename只是一个Unix工具; 它与特定的shell无关,在Bash和Fish中应该同样有效.

看来我basename在错误的上下文中使用,没有后缀.

这通过使用以下方法解决:

function fish_prompt
    echo (basename $PWD) "><> "
end
Run Code Online (Sandbox Code Playgroud)


gle*_*man 5

另一种选择:fish 附带一个名为的函数,该函数prompt_pwd显示/Users/me/Documents/projects/Go/project1/~/D/p/G/project1

function fish_prompt
    echo (prompt_pwd) "><> "
end
Run Code Online (Sandbox Code Playgroud)