基本上,我想在特定目录中创建一个文件 .cd-reminder ,其中包含公告/消息。每次有人“cd”到该特定目录时都会显示它。
已经有一个 shell 脚本可以实现这一点,我目前正在使用 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