无法在 OS X bash 上分配给 PS1

Nic*_*ner 7 bash osx-mountain-lion

我正在尝试进行设置,PS1以便在 git 上显示分支名称:

user.name:some/repo (master) $

但是,我所做的一切似乎都不起作用。即使我只是尝试PS1直接分配给,它也不起作用:

user.name:~ $ echo $PS1
\u:\w $
user.name:~ $ PS1='oh yeah'
user.name:~ $ echo $PS1
\u:\w $
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?我没有设置这个 var 的权限吗?我有语法错误吗?

我在 Mac OS X 10.8 上。

我也试过:

user.name:~ $ echo $PS1
\u:\w $
user.name:~ $ export PS1='oh yeah'
user.name:~ $ echo $PS1
\u:\w $
Run Code Online (Sandbox Code Playgroud)

以供参考:

user.name:~ $ $SHELL --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin12)
Copyright (C) 2007 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)

显然PS1是只读的。有趣的。

user.name:~ $ readonly PS1
-bash: PS1: readonly variable
Run Code Online (Sandbox Code Playgroud)

我如何使它不是只读的?

小智 2

我会检查你的 rc 文件以确保 PS1 没有在其中被定义为只读。

尝试以下操作:

user@server$ PS1='oh yeah :'
oh yeah :readonly PS1
oh yeah :PS1='different PS1 :'
bash: PS1: readonly variable
oh yeah :bash
user@server$ PS1='something else '
something else 
Run Code Online (Sandbox Code Playgroud)

尝试

grep -E 'PS1=' ~/.bashrc <other rc files>
Run Code Online (Sandbox Code Playgroud)