我正在使用Ubuntu,并且我正在使用一些深层的目录层次结构,对bash中的这个长时间提示感到厌倦。 所以,我想调整我的PS1以缩短工作目录部分的方式如下: 目前我有: pajton@dragon:~/workspace/projects/project1/folder1/test$ 并希望有: pajton@dragon:~/workspace/…/folder1/test$ 如果len($ PWD)通过给定的阈值,则会发生截断。 我想始终保持第一个path组件和至less一个最后一个path组件。 然后,如果空间允许,则从右侧添加更多的组件。 这是我目前的。 它起作用,但是:1)不保留第一path分量,2)不遵守边界处的切割path: pwd_length=14 pwd_symbol="…" newPWD="${PWD/#$HOME/~}" if [ $(echo -n $newPWD | wc -c | tr -d " ") -gt $pwd_length ] then newPWD="…$(echo -n $PWD | sed -e "s/.*\(.\{$pwd_length\}\)/\1/")" else newPWD="$(echo -n $PWD)" fi 结果是: pajton@dragon:…sth/folder1/sample$ 提前致谢!
我是新来的混帐,我试图将当前的git分支添加到我已经存在的提示,其定义如下: RESET="\[\017\]" NORMAL="\[\033[0m\]" RED="\[\033[31;1m\]" YELLOW="\[\033[33;1m\]" WHITE="\[\033[37;1m\]" SMILEY="${WHITE}:)${NORMAL}" FROWNY="${RED}:(${NORMAL}" SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi" export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w $(__git_ps1) >${NORMAL} " 我试了一下(通过再次采购我的.bashrc文件),它似乎工作,但后来我去了另一个分支,它没有更新。 我怎样才能确保$(__git_ps1)没有被caching?
我试图在terminal中改变我的命令。 我不断收到错误: -bash: __git_ps1: command not found 我已经试过了,只需将它键入到terminal,如下所示: __git_ps1 。 我也试过了.bash_profile if [ -f ~/.git-completion.bash ]; then source ~/.git-completion.bash export PS1='[\W]$(__git_ps1 "(%s)"): ' fi 正如你可能看到/说出的那样,是的,我确实已经安装了自动完成function,它确实很好用! 我遇到了这个问题:“ PS1 envvariables不适用于mac ”,它给出的代码 alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'" 所以我把它添加到我的.bash_profile希望它会改变一些东西。 那么,它呢。 它只是改变了错误输出。 这里是.bash_profile加上: alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'" […]
我有一个shell脚本,在几个目录( fgit )中运行相同的命令。 对于每个目录,我希望它显示当前提示+将在那里运行的命令。 如何获得解码 (扩展)的PS1对应的string? 例如,我的默认PS1是 ${debian_chroot:+($debian_chroot)}\[\e[1;32m\]\u\[\e[0m\]@\[\e[1;32m\]\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]$(__git_ps1 ' (%s)')$ 我想回应所得到的username@hostname:/path$ ,最好(但不一定)与漂亮的颜色。 粗略看一下Bash手册没有透露任何明确的答案, echo -e $PS1只评估颜色。