Я использую Ubuntu, и я устал от этих длинных запросов в bash, когда я работаю с некоторой глубокой иерархией каталогов. Итак, я хотел бы настроить мой PS1, чтобы сократить часть рабочего каталога следующим образом:
В настоящее время у меня есть:
[email protected]:~/workspace/projects/project1/folder1/test$
и хотел бы иметь:
[email protected]:~/workspace/.../folder1/test$
Усечение произойдет, если len ($ PWD) передает заданный порог. Я хочу всегда сохранить первый компонент пути и по крайней мере один последний компонент пути. Затем, как позволяет пространство, добавьте еще несколько элементов справа.
Это то, что у меня есть сейчас. Он работает, но: 1) не поддерживает компонент первого пути, 2) не рассматривает путь резания на границах:
pwd_length=14
pwd_symbol="..."
newPWD="${PWD/#$HOME/~}"
if [ $(echo -n $newPWD | wc -c | tr -d " ") -gt $pwd_length ]
then
newPWD="...$(echo -n $PWD | sed -e "s/.*\(.\{$pwd_length\}\)/\1/")"
else
newPWD="$(echo -n $PWD)"
fi
И результат:
[email protected]:...sth/folder1/sample$
Спасибо заранее!