У меня были некоторые проблемы с выполнением надлежащей «очистки pushd / popd» в моем скрипте bash.То есть: если я сделал pushd
несколько раз, я хотел убедиться в том, чтобы сделать то же самое число popd
до exit
.
Однако я заметил, что стек pushd / popd не 't кажется глобальным.
Предположим, у меня есть этот скрипт с именем example-pushd-twice.sh
в моем homedir:
pushd /etc
pushd /tmp
И я делаю это из оболочки из моего homedir: (в результате получается выводцитаты)
dirs
~
./example-pushd-twice.sh
/ etc ~
/ tmp/ etc ~
Теперь я ожидал, что все еще буду в /tmp
и все еще буду иметь стек Dir с 3 папками, однако:
dirs
~
Это правильное поведение?Могу ли я доверять сценарию оболочки для вызова своего собственного стека pushd / popd, поэтому мне не нужно заботиться об очистке после этого?