![bash プロンプトは行の先頭に改行されます。](https://linux33.com/image/166322/bash%20%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88%E3%81%AF%E8%A1%8C%E3%81%AE%E5%85%88%E9%A0%AD%E3%81%AB%E6%94%B9%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82.png)
私の〜/ .bashrcファイルにあるDebian 10のPS1プロンプトに色と時間を追加しようとしています。最初は正しいように見えますが、1行に約40文字を入力すると、カーソルが行の先頭(プロンプト自体の最初の文字)に移動し、そこから入力を続けます。何かが正しくエスケープされていないようですが、それが何であるかわかりません。
SH_OFF='\[\033[00m\]'
SH_BLACK='\[\033[1;30m\]'
SH_BLUE='\[\033[1;34m\]'
SH_GREEN='\[\033[1;32m\]'
SH_CYAN='\[\033[1;36m\]'
SH_RED='\[\033[1;31m\]'
SH_PURPLE='\[\033[1;35m\]'
SH_BROWN='\[\033[1;33m\]'
SH_YELLOW='\[\033[1;33m\]'
PS1="${debian_chroot:+($debian_chroot)}$SH_GREEN\u@\h \t$SH_OFF $SH_YELLOW\w$SH_OFF \$ "
答え1
はい、二重引用符を使用する必要があるようです。この問題が解決したようです。
SH_OFF="\[\033[00m\]"
SH_BLACK="\[\033[1;30m\]"
SH_BLUE="\[\033[1;34m\]"
SH_GREEN="\[\033[1;32m\]"
SH_CYAN="\[\033[1;36m\]"
SH_RED="\[\033[1;31m\]"
SH_PURPLE="\[\033[1;35m\]"
SH_BROWN="\[\033[1;33m\]"
SH_YELLOW="\[\033[1;33m\]"