Informacja o psql prompte jest trzymana w zmiennych: PROMPT1, PROMPT2 i PROMPT3. Są one wyświetlane w różnym czasie:
- PROMPT1 - domyślny (jeśli go nie zmieniliśmy to jest on ustawiony na: '%/%R%# ', tak samo jak PROMPT2)
- PROMPT2 - wyświetlany, gdy spodziewane jest wprowadzenie danych wejściowych. Np. gdy nie domkneliśmy znaku cytowania.
- PROMPT3 - wyświetlany, przy wywołaniu polecenia COPY i wyświetlaniu wynik na terminal. Domyślnie jest ustawiony na '>> '
Aby zmienić prompt, możemy użyć polecenia \set.
\set PROMPT1 string
String jest drukowany dosłownie, chyba że napotka na znak %. W zależności od znaku następnego (po %) jest podmieniany na inną informację.
Znak | Opis |
---|---|
%M | Pełna informacja na temat nazwy hosta serwera bazodanowego. Jeśli klient łączy się przy pomocy soceta, będzie widział: [local] lub [local:/dir/path] jeśli socet po którym się łączymy, nie jest na standardowej ścieżce. |
%m | Ta sama informacja co przy %M, ale nazwa hosta jest obcinana do pierwszej kropki. |
%> | Numer porta, na którym nasłuchuje serwer |
%n | User name sesji |
%/ | Nazwa bazy danych |
%~ | To samo co '%/' ale wynikiem jest ~ (tylda) jeśli bada zanych jest twoją domyślna bazą |
%# | Jeśli użytkownik jest superuser, to '>' jest zmieniane na '#' |
%R | Dla PROMPT1:
|
%x | Zwraca status transakcji:
|
%znak | Znak wskazujący na znak kodu ósemkowego |
%:name: | Wartość zmiennej o nazwie name |
%`command` | Wynik działania polecenia command |
%[...%] | Można nadać promptowi znaki kontrolne terminala dla np. zmiany koloru, tła albo stylu tekstu. Albo zmienić nazwę okna terminala. Znaki kontrolne muszą być oznaczone jako niewidoczne przez otaczające je %[ i %] |
Przejdźmy do przykładów
Oto przykład prompta, który zawiera informację o hoście, porcie, użytkowniku, którym się łączę i nazwy bazy danych. Te informację są wyróżnione białą grubą czcionką. Dodatkowe chce mieć informację, jeśli jestem w bloku transakcji (Jeśli jesteśmy w bloku transakcji, to w promptcie pojawi się żółta gwiazdka).
\set PROMPT1 '%[%033[33;1m%]%x%[%033[0m%]%[%033[1m%]%M:%>@%n (%/)%[%033[0m%]%R%# '
Dzięki poleceniu date, możemy także wyświetlić informację o czasie:
Jeśli chcemy ustawić nasz prompt na stałe, możemy mieścić to polecenie w pliku $HOME/.psqlrc
∴ cat /home/ela/.psqlrc \set PROMPT1 '\n[%`date +"%H:%M:%S"`]\n%[%033[33;1m%]%x%[%033[0m%]%[%033[1m%]%M:%>@%n (%/)%[%033[0m%]%R%# ' 14:18:25 ela@localhost:~ ruby-1.9.3-p194 ∴
Plik $HOME/.psqlrc determinuje zachowanie programu psql wiersza poleceń. Jest on czytany przy starcie.
Dokumentacja: http://www.postgresql.org/docs/9.1/static/app-psql.html#APP-PSQL-PROMPTING
Brak komentarzy:
Prześlij komentarz