В моем файле .bashr c у меня есть функция
changeDirectory()
{
cd "/home/bin"
}
Если я нахожусь в / home и в командной строке ввожу changeDirectory, текущим каталогом становится / home / bin
Если эта функция вызывается из других функций, она также работает для изменения текущего каталога.
handler()
{
changeDirectory
}
Если я наберу обработчик в командной строке, он изменит мой текущий каталог на / home / bin
Однако, если я вызову changeDirectory из этой функции:
command_not_found_handle()
{
changeDirectory
echo "$PWD"
}
Когда я набираю команду, она не найдена, и эта функция вызывается, она выводит / home / bin, но когда я набираю pwd в командной строке, я все еще в / home
Кажется, что функция command_not_found_handler ведет себя не так, как обычные функции. Есть ли способ изменить мой текущий каталог?