我正在尝试设置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
答案3
令人惊讶的是,它应该可以工作,而且肯定不是一个权限问题。
您是否尝试过使用双引号export PS1="oh yeah"
代替export PS1='oh yeah'
?