Ваш процесс (называемый $$) имеет «Текущий каталог», ~/Downloads.
Когда вы ./cd-backward, этот скрипт Bash запускается в своем собственном процессе, который имеет свой собственный «Текущий каталог», который начинается с ~/Downloads.
cd .. влияет на «Текущий каталог» процесса ./cd-backward, меняя его на ~, но НЕ влияя на «Текущий каталог» вашего исходного процесса.
] ./cd-backward завершается, его процесс завершается, а cd .. забывается.
Вот два способа повлиять на мой собственный «Текущий каталог», хранящийся в моем «~ / .bashrc»:
Сначала несколько alias es: [!d5 ]
alias ..='cd ..'
alias ...='cd .. ; cd ..'
Вот как я сохраняю текущий каталог в заголовке окна (через перехват cd):
# from the "xttitle(1)" man page - put info in window title
update_title()
{
[[ $TERM = xterm ]] || [[ $TERM = xterm-color ]] && xttitle "[$$] ${USER}@${HOSTNAME}:$PWD"
}
cd()
{
[[ -z "$*" ]] && builtin cd $HOME
[[ -n "$*" ]] && builtin cd "$*"
update_title
}