在PS1中转义字符

时间:2010-11-23 16:43:23

标签: bash shell initialization escaping

我正在使用这样的命令开始新的bash会话:
exec bash --init-file <(cat /etc/profile ~/.bashrc $ANOTHER_SCRIPT) -i
我还想更改新会话的提示而不必添加另一个初始文件...我怀疑我最好的选择是这样的:
exec bash --init-file <(cat /etc/profile ~/.bashrc $ANOTHER_SCRIPT; echo "PS1='[TEST] '$PS1") -i
我认为我的问题涉及逃脱的角色...但我对如何继续解决问题毫无头绪,因为我将标签添加到提示符之前。

非常感谢任何想法,

安德鲁

2 个答案:

答案 0 :(得分:3)

这应该有效:

exec bash --init-file <(cat /etc/profile ~/.bashrc $ANOTHER_SCRIPT; echo 'PS1="[TEST] $PS1"') -i

答案 1 :(得分:1)

PS1="[TEST] $PS1"

您不能将此与<(cat ...)流程替换位于同一行,因为它只需要文件,而是在~/.bashrc文件中