GNU/Linux >> Znalost Linux >  >> Linux

Zkrácený aktuální adresář ve výzvě Shell?

vim má opravdu pěknou funkci, kterou využívá na svých cestách, když jsou trochu dlouhé:

V záložce nahoře zkracuje cestu k dokumentu. Existuje způsob, jak udělat něco podobného, ​​aby můj bash prompt nevypadal takto:

[email protected] ~/Documents/Projects/Work/maventest/src/main/java/com/tkassembled/ $ 

Přijatá odpověď:

Zkuste toto:

PROMPT_COMMAND='PS1X=$(perl -pl0 -e "s|^${HOME}|~|;s|([^/])[^/]*/|$""1/|g" <<<${PWD})'

nebo čistý bash:

PROMPT_COMMAND='PS1X=$(p="${PWD#${HOME}}"; [ "${PWD}" != "${p}" ] && printf "~";IFS=/; for q in ${p:1}; do printf /${q:0:1}; done; printf "${q:1}")'

pak

PS1='[email protected] ${PS1X} $ '

vytváří (všimněte si ~ pro ${HOME} ):

[email protected] ~/D/P/W/m/s/m/j/c/tkassembled $

Svou odpověď jsem zlepšil díky @enzotib's


Linux
  1. Chyba shell-init při načítání aktuálního adresáře [Oprava]

  2. Rychlá navigace v adresáři v prostředí Bash?

  3. Výzva terminálu přepíše aktuální řádek?

  1. $pwd? (vs. aktuální pracovní adresář)?

  2. Odkud se spouští skript Shell?

  3. Obnovit .bashrc z aktuálního prostředí?

  1. Jak spustím program s jiným pracovním adresářem, než je aktuální, z prostředí Linux?

  2. Aktuální adresář skriptu Shell?

  3. Spouštění skriptů z jiného adresáře