Chciałbym usunąć tyldy z wyświetlania w zmiennej PS1.
Mój obecny ciąg PS1:
PS1="\h:\w\n$"
A monit wygląda następująco:
lnx-hladky:/tmp/plugtmp
$
Nie podoba mi się, że katalog $ HOME jest wyświetlany jako tylda. Czy można tego uniknąć?
Powoduje problemy, na przykład:
lnx-hladky:~/DOC
$
Dokumentacja mówi:
\w : the current working directory, with $HOME abbreviated with a tilde
\W: the basename of the current working directory, with $HOME abbreviated with a tilde
Czy istnieje możliwość uniknięcia skrótu $ HOME tyldą?
Znalazłem jedno rozwiązanie, ale wydaje mi się, że jest to zbyt skomplikowane:
PROMPT_COMMAND='echo -ne "\e[4;35m$(date +%T)\e[24m$(whoami)@$(hostname):$(pwd)\e[m\n"'
PS1=$
Czy ktoś może zaproponować lepsze rozwiązanie? Mam wrażenie, że uruchamianie tak wielu poleceń nie jest w porządku. (data, whoami, nazwa hosta, pwd).
command-line
bash
unix
Jirka
źródło
źródło
Odpowiedzi:
bash uruchamia rozszerzenia w wierszu poleceń; po prostu upewnij się, że ich unikniesz.
źródło
pwd
przy każdym znaku zachęty. Rozwiązanie Dennisa nie, tylko pobiera zmienną środowiskową PWD, która jest znacznie tańsza.pwd
jest wbudowanym bash. Twierdzenie, które${PWD}
jest „znacznie tańsze” niż$(pwd)
bez dowodów.Nie musisz uruchamiać tylu poleceń, ile pokazałeś w swoim przykładzie.
bash
zapewnia skróty do większości wymienionych rzeczy.Twój przykład:
może być przepisany jako:
Gdzie
\t
pokazuje czas (w formacie 24-godzinnym),\u
pokazuje bieżącą nazwę użytkownika, „\ h” pokazuje nazwę hosta -bash
strona podręcznika omawia je i resztę znaków ucieczki dostępnych dla twojego monitu.Nawet jeśli rozwiniesz
~
pełną ścieżkę, jeśli nie wiesz, który użytkownik uruchamia polecenie, i regularnie zmieniasz użytkowników, możesz tworzyć problemy z uprawnieniami do plików lub uprawnieniami wykonywalnymi.źródło
\u
aby wiedzieć, kim jestem. Nie zapomnij zaakceptować odpowiedzi Ignacio - kliknij pole wyboru po lewej stronie pytania.Korzystam z poniższych ustawień w moim pliku .bash_profile
źródło