oh-my-bash의 powerline 테마를 사용하고 있는데 cwd 프롬프트가 가끔 너무 길어지는 경우가 있습니다. powerline.base.sh
파일에서 이것을 찾았는데 비밀번호를 반환하는 것 같습니다 .
function __powerline_cwd_prompt {
echo "$(pwd | sed "s|^${HOME}|~|")|${CWD_THEME_PROMPT_COLOR}"
}
~/stuff/moreStuff/.../now 또는 이와 유사한 긴 디렉토리를 압축할 수 있도록 수정하고 싶습니다. BASH에 대해 잘 모르는데 어떻게 해야하는지 궁금합니다.
답변1
만약에 내가 놀랄 것입니다아 난 난교야경로를 단축하는 옵션/기능이 없습니다.
그럼에도 불구하고 단축기를 사용한 빠른 시도는 다음과 같습니다(종종 전통적으로 시작부터 단축됨).
#!/usr/bin/env bash
# Credit: https://stackoverflow.com/a/17841619/2858703
join_by() { local IFS="$1"; shift; echo "$*"; }
short_pwd() {
IFS='/' read -a directory < <(pwd)
local -i trim_level=${1:-3} # default trim level of 3
if [ ${#directory[*]} -ge ${trim_level} ] && [ ${trim_level} -gt 0 ]; then
join_by / "..." "${directory[@]: -${trim_level}}"
else
pwd
fi
}
# examples
short_pwd
short_pwd 2
# these cause no trimming
short_pwd 0
short_pwd -1
short_pwd a
.
현재 형식에서는 이를 사용하려면 소스를 제공(예제 제거) 해야 합니다 . 또는 예제를 대체하려면 short_pwd $1
스크립트로 실행할 수 있습니다(전달된 첫 번째 매개변수가 다듬기 수준을 결정함).
감사의 말이 답변.
(이 질문은 이전에 여러 번 해결되었을 수도 있지만 때로는 직접 해결해 보는 것도 재미있습니다.)
편집: 내가 지나치게 엔지니어링했다는 것을 깨달았습니다. 이제 우아함을 더해보세요!