Bash renk istemi ve uzun komutlar


2

ANSI kaçış dizilerini kullanarak bash istemimin parçalarını renklendiriyorum. Bu harika çalışıyor, şu anda yazdığım komutun kaydırması gerekecek kadar uzun. Bir sonraki satırda görüntülenen komutun geri kalanı yerine, geçerli satırın 1. sütununa geri döner ve komut satırının başlangıcına yazılır.

Bu istemde bu davranışı alıyorum:

export PS1="[\u][\033[0;32;40mdemo \033[0;33;40m1.5.40.b\033[0;37;40m] \w> \033[0m"

ancak aynı istemle doğru şekilde çalışıyorsa, ANSI dizileri kaldırır:

export PS1="[\u][demo 1.5.40.b] \w> "

Varsayılan Putty ayarlarıyla geçerli Macun sürümünü kullanarak bağlanıyorum. İşletim sistemi Ubuntu 8.10.

Yanıtlar:


1

Orada bir şey olmalı, çünkü bash belgelerindeki şu dizge aynı davranışı sergilemiyor:

PS1="\[\033[1;34m\][\$(date +%H%M)][\u@\h:\w]$\[\033[0m\] "

Ne olduğunu henüz anlamadım, ama onların işleri ve seninki ...

EDIT: Deneyin:

PS1="[\u][\[\033[1;32m\]\[\033[1;40m\]demo \[\033[1;33m\]\[\033[1;40m\]1.5.40.b\[\033[0;37m\]] \w> \[\033[0m\] "

3
Bu yaptı. Sebebi, bash'a "aşağıdaki karakterlerin yazdırılamaz olması" söylenmesi gerekmesidir, bu yüzden istemin uzunluğu boyunca karıştırılmaz. Bu, yazdırılamaz karakterleri \ [ve \] içine alarak yapılır. Bkz. Tldp.org/HOWTO/Bash-Prompt-HOWTO/nonprintingchars.html
Eric J.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.