无法在 OS X bash 上分配给 PS1

无法在 OS X bash 上分配给 PS1

我正在尝试设置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 $

我做错了什么吗?我没有权限设置这个变量吗?我有语法错误吗?

我在使用 Mac OS X 10.8。

我也尝试过:

user.name:~ $ echo $PS1
\u:\w $
user.name:~ $ export PS1='oh yeah'
user.name:~ $ echo $PS1
\u:\w $

以供参考:

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

显然PS1是只读的。有趣。

user.name:~ $ readonly PS1
-bash: PS1: readonly variable

我如何使其不成为只读?

答案1

我会检查你的 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 

尝试

grep -E 'PS1=' ~/.bashrc <other rc files>

答案2

你有没有尝试过

export PS1='oh yeah'

来源

答案3

令人惊讶的是,它应该可以工作,而且肯定不是一个权限问题。

您是否尝试过使用双引号export PS1="oh yeah"代替export PS1='oh yeah'

相关内容