行の背景色を変更する方法は?

行の背景色を変更する方法は?

私の試みは次のとおりです。

ここに画像の説明を入力してください。

最後はうまくいきますが、コピー - 貼り付けは中断されます(コピーすると多くのスペースが追加されます)。もっと良い方法がありますか?

コピー可能なテキスト:

$ PS1='\['$'\x1b[0m\]$ '
$ echo -e "\x1b[41;37mWarning text\x1b[0m"; echo Normal text
Warning text
Normal text
$ echo -ne "\x1b[41;37mWarning text"$'\n'"\x1b[0m"; echo Normal text
Warning text
Normal text
$ echo -ne "\x1b[41;37mWarning text"$'\n'"\x1b[47;30m"; tr </dev/zero \\0 \ |head -c 80; echo -ne "\x1b[A";  echo Normal text
Warning text
Normal text                                                                     
$ 
$ t="Warning text";echo -ne "\x1b[41;37m";echo -n "$t";{ tr </dev/zero \\0 \ |head -c $(bc <<<"$(stty -a <&3|grep -Po '(?<=columns )[0-9]+')-$(wc -c<<<"$t")+1"); } 3<&0;echo -e "\x1b[0m";echo "Normal text"
Warning text                                                                    
Normal text
$ 

ベストアンサー1

私は自分で解決策を見つけました。この関連質問)。これを使用してください:

echo -e '\x1b[41;37mWarning text\x1b[K\x1b[0m';echo Normal text

文書には次のように記載されています\x1b[K

       K   EL        Erase line (default: from cursor to end of line).
                     ESC [ 1 K: erase from start of line to cursor.
                     ESC [ 2 K: erase whole line.

おすすめ記事