Drobny k

Tematy związane z oprogramowaniem, instalacją, konfiguracją
PhockouS

Drobny kłopot z bashem i kolorami

Post autor: PhockouS »

Witam.

Postanowilem pokolorwac bash. Meczylem sie meczylem, az zrobilem fajny config:

Kod: Zaznacz cały

PS1='${debian_chroot:+($debian_chroot)}\[\033[0;37m\u@\033[1;33m\h:\033[0;37m\w$\033[0m\]'
Lecz jest w nim pewien blad, przy wpisywaniu obojetnie czego (chodzi o pierwszy znak) dziwnie przeskakuje. Efekt mozecie zobaczyc po wklejeniu Moim wypocin do konsoli.

Czy wiecie moze jak to naprawic? Z niecierpliwoscia czekam na rozwiazanie mojego problemu.
Awatar użytkownika
ruun
Member
Posty: 1366
Rejestracja: 29 marca 2007, 21:07
Lokalizacja: Kruszwica

Post autor: ruun »

Miałem podobne problemy gdy pokolorowałem sobie

Kod: Zaznacz cały

/lib/lsb/init-functions
chciałem uzyskać efekt podobny do startu Gentoo, niestety po moich zmianach komunikaty startowe zaczęły się zlewać (łączyły się po kilka w jednej linii) :-/

Też chciałbym się dowiedzieć od czego to zależy.
Gość

Post autor: Gość »

Ja tam staram się nie używać bezpośrednio kodów.
Zamiast tego używam tput.

Mały przykład:

Kod: Zaznacz cały

TPUT=/usr/bin/tput
red="$($TPUT bold;$TPUT setaf 1)"
green="$($TPUT bold;$TPUT setaf 2)"
yellow="$($TPUT bold;$TPUT setaf 3)"
blue="$($TPUT bold;$TPUT setaf 4)"
violet="$($TPUT bold;$TPUT setaf 5)"
cyan="$($TPUT bold;$TPUT setaf 6)"
none='\[\033[00m\]'

TTY=$(tty | cut -d / -f3,4)

if [[ $EUID == 0 ]]; then
    hn="$red"
else
    hn="$green"
fi

PS1='\n'$hn'\h'$none\ \ $cyan[$TTY]$none\ \ $yellow['\t']$none\ \ $violet[\ '\w'\ ]$none'\n'\ $hn\>\>\ $none
... i już masz ładny i ciekawy prompt :)

Pozdrawiam
PhockouS

Post autor: PhockouS »

Hagal, a coz to? Moglbys przyblizyc :-)
Gość

Post autor: Gość »

Kolorowy prompt - "lekko" zmodyfikowany przeze mnie :)
Wygląda tak jak na screenie:

Obrazek

Pozdrawiam
PhockouS

Post autor: PhockouS »

Fajne :-)

Jak moge uzyskac taki efekt ?
Gość

Post autor: Gość »

To jest dokładnie to co napisałem powyżej (w CODE)
Popatrz sobie w to dokładnie - definicje kolorów masz ustawione
Teraz tylko stwórz własny PS1 stosując je odpowiednio wg. mojego przykładu

Pomyśl, popróbuj i sam zobaczysz jakie to proste :)


Pozdrawiam

P.S.
Zwróć tylko uwagę na to by każdy element, który jest kolorowany kończyć powrotem do podstawowego koloru używając $none.
leonid
Posty: 86
Rejestracja: 21 stycznia 2007, 18:34
Lokalizacja: Stolyca

Post autor: leonid »

Bajer po prostu.
Jest gdzieś jakiś opis co można wstawić do PS1?
Bo to przecież jest prompt.
Może jakieś słówko komentarza czy coś?
Gość

Post autor: Gość »

leonid pisze:Bajer po prostu.
Co jest "bajer"?
leonid pisze:Jest gdzieś jakiś opis co można wstawić do PS1?
man bash pisze:ZACHÊTA POW£OKI
Przy wykonywaniu interaktywnym bash wyświetla główny symbol zachęty (primary
prompt) PS1 kiedy jest gotowa na odczyt polecenia, zaś wtórną (secondary) zachętę
PS2 kiedy potrzebuje więcej danych z wejścia do uzupełnienia polecenia. Bash
pozwala na dostosowywanie tych łańcuchów zachęty poprzez wstawianie pewnej ilości
znaków specjalnych rozpoczynających się odwrotnym ukośnikiem, które są dekodowane
jak następuje:
\a znak dzwonka ASCII (07)
\d data w formacie "DzieńTyg Miesiąc Dzień" format (np., "Tue May 26")
\e znak escape ASCII (033)
\h nazwa hosta do pierwszej kropki `.'
\H nazwa hosta
\j liczba zadań aktualnie obsługiwanych przez powłokę
\l główna część nazwy urządzenia terminala powłoki
\n znak nowej linii
\r powrót karetki
\s nazwa powłoki, główna część nazwy $0 (fragment występujący po ostat-
nim ukośniku)
\t bieżący czas w formacie 24-godzinnym GG:MM:SS
\T bieżący czas w formacie 12-godzinnym GG:MM:SS
\@ bieżący czas w 12-godzinnym formacie am/pm
\A bieżący czas w 24-godzinnym formacie GG:MM
\u nazwa bieżącego użytkownika (username)
\v wersja programu bash (np. 2.00)
\V wydanie bash, wersja+poziom łat (np., 2.00.0)
\w bieżący katalog roboczy
\W główna część nazwy bieżącego katalogu roboczego
\! numer tego polecenia w historii
\# numer polecenia tego polecenia
\$ Jeżeli efektywnym UID jest 0, to #, w przeciwnym razie $
\nnn znak odpowiadający szesnastkowej liczbie nnn
\\ odwrotny ukośnik
\[ początek sekwencji znaków niedrukowalnych, która może służyć do
osadzenia w zachęcie sekwencji sterujących terminalem
\] koniec sekwencji znaków niedrukowalnych

Numer polecenia i numer w historii są zwykle różne: numer polecenia w historii jest
jego pozycją na liście historii, która może obejmować polecenia odtworzone z pliku
historii (zobacz poniżej HISTORIA), podczas gdy numer polecenia jest pozycją w sek-
wencji poleceń wykonanych w obecnej sesji powłoki. Po zdekodowaniu, łańcuch jest
interpretowany poprzez interpretację parametrów, podstawianie wyników poleceń,
interpretację wyrażeń arytmetycznych, interpretację łańcuchów i usuwanie cytowań,
zgodnie z wartością opcji promptvars powłoki (zobacz opis polecenia shopt w sekcji
WBUDOWANE POLECENIA POW£OKI poniżej).
leonid pisze:Bo to przecież jest prompt...
Gratulacje :) )
leonid pisze:Może jakieś słówko komentarza czy coś?
Sprecyzuj ...

Pozdrawiam
thalcave
Junior Member
Posty: 526
Rejestracja: 03 maja 2007, 19:57
Lokalizacja: gdynia

Post autor: thalcave »

A jest może jakieś lekarstwo na zawijanie kolorowych znaków zachęty?
Obojetnie ile dam kolorow to nie moge zapełnić pierwszej lini do końca (wcześniej ją zawija bash) i do tego zawija ją nie linie niżej a w tą samą
Oto fotka:Obrazek
Nie dzieje się tak tylko przez putty, na terminalu tty? także tak jest :/
ODPOWIEDZ