на продовження оповідки про кастомізацію запрошення bash yarema запитав, чи подужаю я змайструвати запрошення, котре автоматично скорочуватиме надміру довгі шляхи до поточної директорії. я взявся спробувати — і за кілька хвилин накидав досить примітивний варіант, котрий, тим не менш, працює.

ось код для .bashrc на pastebin (див. наприкінці допису). додати довелося лише ось цей фрагмент:

$(if [[ ${#PWD} -gt 30 ]]; then echo "${PWD:0:14}..${PWD:(-14)}"; else echo "${PWD}"; fi)

працює справді примітивно: якщо довжина шляху (${#PWD}) більша за 30 символів — беремо 14 символів від початку (${PWD:0:14}) та стільки ж від кінця (${PWD:(-14)}), додавши між ними дві крапки. і жодного виклику sed, — самі лише вбудовані функції bash.

результат на анімованому знятку. мені сподобалося, залишив і собі.

чому примітивно?
по-перше, замість шляху до домашньої теки користувача не підставляється ~, та й замість простого «вирізання» середини варто було б зробити розумну заміну внутрішніх сегментів адреси:

~/Dropbox/../write

але то вже буде задачка на інший раз.

p.s. …і, звісно ж, кольорове кодування $ залежно від коду завершення — поламалося. зараз міркуватиму, як поремонтувати.

0 коментар(ів):

Дописати коментар

увага!
коментарі не модерую, проте спам видаляю нещадно. посилання на інші сайти/блоги за темою допису вітаю.

додаткові можливості розмітки (кутики набрати з клавіатури):
  ‹b›жирний шрифт‹/b›
  ‹i›похилий шрифт‹/i›
  ‹a href="http://tivasyk.info"›посилання‹/a›