添加颜色后如何包装 bash 命令

添加颜色后如何包装 bash 命令

我当前的 .bash_profile 等于以下内容。我添加了一些颜色并添加了一个命令,该命令输出我是否位于 PS1 的 bash 配置文件的 git 存储库中。

ORIG=$PS1
PS1="\[${txtund}${green}\]LOCAL\[\[${reset}\]";
PS1+="\$(prompt_git \"${white} on ${violet}\")";
PS1+="\[${reset}\]";
PS1+=" - \u\$: ";

问题是,当我运行长命令时,它会重写该行。我想自动换行我的命令,以便在我编写时它们转到下一行。我需要用什么来包裹 PS1 才能发生这种情况?

更新 -

ORIG=$PS1
PS1="\[${txtund}${green}\]LOCAL\[\[${reset}\]";
PS1+="\$(prompt_git \"\[${white}\] on \[${violet}\]\")";
PS1+="\[${reset}\]";
PS1+=" - \u\$: ";

我根据下面的评论增加了逃脱的次数。包裹仍然不起作用。还有其他建议吗?

答案1

ORIG=$PS1
PS1="\[${txtund}${green}\]LOCAL\[\[${reset}\]";
PS1+="\$(prompt_git \"\[${white}\] on \[${violet}\]\")";
PS1+="\[${reset}\]";
PS1+="\[ - \u\$: \]";

我已经转义了颜色和最后一行文本。这解决了我的问题。通过使用 [ ] 并转义颜色和文本,我能够在 bash 中正确地自动换行命令。

相关内容