Вы можете добиться этого, изменив переменную 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
справочные страницы, поиск :=
)