标签: ps1

(Mac)-bash:__ git_ps1:找不到命令

我正在尝试在终端中更改我的命令promt.我一直收到错误:

-bash: __git_ps1: command not found

我只是通过在终端中键入它来尝试它:__git_ps1.我也试过了.bash_profile

if [ -f ~/.git-completion.bash ]; then
  source ~/.git-completion.bash
  export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
Run Code Online (Sandbox Code Playgroud)

正如您可能看到/告诉的那样,是的,我确实已经安装了自动完成功能,它确实很有效!

我遇到了这个问题:" PS1 env变量在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)/'"

if [ -f ~/.git-completion.bash ]; then
  source ~/.git-completion.bash
  export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
Run Code Online (Sandbox Code Playgroud)

现在这里是改变的错误输出:

sed: (%s): No such file or directory

注意:我也将源下的别名移动到没有区别.我有 git版本1.7.12.1 …

git macos terminal ps1

215
推荐指数
7
解决办法
11万
查看次数

为什么我的bash提示没有更新?

我是git的新手,我正在尝试将当前的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} "
Run Code Online (Sandbox Code Playgroud)

我尝试了(通过.bashrc再次获取我的文件)它似乎工作,但后来我去了另一个分支,它没有更新.我怎样才能确保$(__git_ps1)没有缓存?

git bash ps1

79
推荐指数
2
解决办法
2万
查看次数

如何缩短命令行提示符的当前目录?

我正在使用Ubuntu,当我使用一些深层目录层次结构时,我厌倦了bash中的这个长提示.所以,我想通过以下方式调整我的PS1来缩短工作目录部分:

目前我有:

pajton@dragon:~/workspace/projects/project1/folder1/test$
Run Code Online (Sandbox Code Playgroud)

并希望:

pajton@dragon:~/workspace/.../folder1/test$
Run Code Online (Sandbox Code Playgroud)

如果len($ PWD)超过给定阈值,则会发生截断.我想始终保留第一个路径组件和至少一个最后一个路径组件.然后在空间允许的情况下,从右侧添加更多组件.

这就是我目前所拥有的.它有效,但是:1)不保留第一个路径组件,2)不尊重边界处的切割路径:

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
Run Code Online (Sandbox Code Playgroud)

结果如下:

pajton@dragon:...sth/folder1/sample$ 
Run Code Online (Sandbox Code Playgroud)

提前致谢!

string bash path ps1

52
推荐指数
4
解决办法
3万
查看次数

bash PS1提示中的短日期

您可以在PS1配置中使用\ d来显示长日期,即.5月18日星期二,但我怎么能以18.05.2012这样的格式显示呢?

bash ps1

25
推荐指数
5
解决办法
1万
查看次数

检测空命令

考虑这个PS1

PS1='\n${_:+$? }$ '
Run Code Online (Sandbox Code Playgroud)

这是一些命令的结果

$ [ 2 = 2 ]

0 $ [ 2 = 3 ]

1 $

1 $
Run Code Online (Sandbox Code Playgroud)

第一行显示没有预期的状态,接下来的两行显示正确的退出代码.但是在第3行只有Enter被按下,所以我希望状态消失,就像第1行一样.我怎么能这样做?

bash shell interactive ps1

22
推荐指数
3
解决办法
1294
查看次数

Echo扩展了PS1

我有一个shell脚本,在几个目录(fgit)中运行相同的命令.对于每个目录,我希望它显示当前提示+将在那里运行的命令.如何获得与解码(扩展)对应的字符串PS1?例如,我的默认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)')$
Run Code Online (Sandbox Code Playgroud)

我想回应最终的提示username@hostname:/path$,最好(但不一定)用漂亮的颜色.粗略地看一下Bash手册没有透露任何明确的答案,echo -e $PS1只评估颜色.

bash ps1

21
推荐指数
4
解决办法
1万
查看次数

如何在PS1中设置条件换行符?

我试图设置,PS1以便它在登录后立即打印出来,但之后会换行.

假设export PS1="\h:\W \u\$ ",第一次(即登录后)你得到:

hostname:~ username$ 
Run Code Online (Sandbox Code Playgroud)

我一直在尝试像我这样的东西~/.bashrc:

function __ps1_newline_login {
  if [[ -n "${PS1_NEWLINE_LOGIN-}" ]]; then
    PS1_NEWLINE_LOGIN=true
  else
    printf '\n'
  fi
}

export PS1="\$(__ps1_newline_login)\h:\W \u\$ “
Run Code Online (Sandbox Code Playgroud)

期待得到:

# <empty line>
hostname:~ username$ 
Run Code Online (Sandbox Code Playgroud)

从一开始就有一个完整的例子:

hostname:~ username$ ls `# notice: no empty line desired above!`
Desktop      Documents

hostname:~ username$ 
Run Code Online (Sandbox Code Playgroud)

bash shell ps1

15
推荐指数
2
解决办法
4655
查看次数

在msys bash上包含换行符时,PS1命令替换失败

此命令成功

$ PS1='$(date +%s) $ '
1391380852 $

但是,如果我添加换行符,则会失败

$ PS1='$(date +%s)\n$ '
bash: command substitution: line 1: syntax error near unexpected token `)'
bash: command substitution: line 1: `date +%s)'

如果我使用反引号就行了

$ PS1='`date +%s`\n$ '
1391381008
$

但是反叛是沮丧的.那是什么导致了这个错误?

GNU bash, version 4.2.45(6)-release

bash backticks ps1 command-substitution

14
推荐指数
1
解决办法
2711
查看次数

bash PS1提示的三角背景

我试图获得bash PS1提示的三角形背景. 如图所示

我已经尝试过调用现有的库,powerline但对我老化的笔记本电脑来说似乎很重要.我已设法获得背景颜色,但不知道获得形状.目前我所拥有的是: 我的PS1.

有这些形状的直接方式吗?

我在用:

$ echo $TERM
xterm-256color
$ echo $SHELL
/bin/bash
$ bash --version
GNU bash, version 4.3.42(1)-release (x86_64-redhat-linux-gnu)
Run Code Online (Sandbox Code Playgroud)

bash prompt ps1

14
推荐指数
1
解决办法
5013
查看次数

终端PS1中的断线修复

我有这个代码为我的终端着色:

export PS1="\e[1;30m\][\e[\e[1;30m\]\e[1;33m\] \u@\H \[\e[1;32m\]\w\[\e[0m\] \e[1;30m\]]\n[\[ \e[1;31m\]\T\[\e[0m\]\e[1;30m\] ] > \e[37m\]"
Run Code Online (Sandbox Code Playgroud)

但是我有一个问题,当文本应该在新行中时它会覆盖第一行.

例:

macos terminal ps1

11
推荐指数
1
解决办法
1691
查看次数

标签 统计

ps1 ×10

bash ×8

git ×2

macos ×2

shell ×2

terminal ×2

backticks ×1

command-substitution ×1

interactive ×1

path ×1

prompt ×1

string ×1