因此,每次我更改目录时,我都希望使用 自动列出新路径ls
。
如果使用 更改路径,则有解决方案cd
,但我从未找到使用 选项更改路径时可行的解决方案autocd
。
会很方便,有人实现过吗?
答案1
PROMPT_COMMAND
您可以通过更改在 PS1 之前执行的变量来实现这一点,例如:
PROMPT_COMMAND='ls'
每次你收到新提示时,这都会列出。当然,你只想ls
在目录发生变化时执行:
PROMPT_COMMAND='[[ $my_currdir != $PWD ]] && ls; my_currdir=$PWD'
这将检查新目录是否与上次设置的目录不同,然后执行ls
,之后当前目录将存储在my_currdir
我找到了更好的台词这里,他们使用bash 作为文件管理器:
PROMPT_COMMAND='[[ ${__new_wd:=$PWD} != $PWD ]] && list; __new_wd=$PWD'
因为有可能__new_wd
未设置,所以您可以指定一个在这种情况下将使用的默认值(请参阅bash
手册页,搜索:=
)