기본적으로 공지 사항/메시지가 포함된 특정 디렉터리에 .cd-reminder 파일을 만들고 싶습니다. 누군가가 특정 디렉토리에 "cd"할 때마다 표시됩니다.
이를 달성하기 위한 쉘 스크립트가 이미 있습니다. 현재 Fish를 사용하고 있지만 변환 방법에 익숙하지 않습니다. 도움을 주시면 감사하겠습니다.
reminder_cd() {
builtin cd "$@" && { [ ! -f .cd-reminder ] || cat .cd-reminder 1>&2; }
}
alias cd=reminder_cd`
답변1
다음과 같은 기능을 추가할 수 있습니다 ~/.config/fish/config.fish
.
function show-reminder --on-variable PWD
if test -f .cd-reminder
cat .cd-reminder
end
end
cd
(이렇게 하면 사용할 수 있는 디렉터리 기록을 유지하는 내장 기능을 재정의하는 것을 방지할 수 있습니다 .)
~/.config/fish/functions/
이 기능 은 수동으로 실행할 때까지 변경 시 실행되는 것으로 간주되지 않으므로 에서 자동 로드 기능으로 추가하면 안 됩니다 .$PWD
답변2
function cd
builtin cd $argv
and test -f .cd-reminder
and cat .cd-reminder
end
.cd-reminder 파일이 디렉토리에 없으면 이것이 실패한 종료 상태를 반환한다는 것을 방금 깨달았습니다. 대신 이것을 사용하십시오. 그러면 주어진 디렉토리로 cd할 수 없는 경우 함수는 실패를 반환할 것입니다.
function cd
builtin cd $argv
and begin
test -f .cd-reminder
and cat .cd-reminder
or true
end
end