# This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # export LC_ALL=C export LANG=C dirs -c # error -- non-existent directory pushd /tmp/xxx-notthere # errors -- empty stack pushd popd # errors -- bad numeric arguments -- should not cause the script to exit pushd -m popd -m dirs -m dirs 7 MYDIR=$PWD unalias cd 2>/dev/null unalias -a command cd -P / command pwd -P # better be `/' case "$OLDPWD" in $MYDIR) echo ok ;; *) echo oops -- bad \$OLDPWD ;; esac pushd /usr echo $PWD $OLDPWD dirs echo ${DIRSTACK[@]} # this should not change the directory stack at all pushd -n +0 dirs popd pushd /usr pushd /etc dirs dirs -l dirs -v # two consecutive `pushd's should swap the top two stack elements, then # swap them back, leaving the stack intact pushd pushd pushd /tmp echo ${DIRSTACK[0]} ; dirs +0 echo ${DIRSTACK[2]} ; dirs +2 # these should be errors, but not affect the directory stack dirs +9; dirs -9 pushd +9 ; pushd -9 popd +9 ; popd -9 popd -n +2 dirs echo ${DIRSTACK[@]} pushd -n /usr echo $PWD dirs echo ${DIRSTACK[@]} builtin pwd DIRSTACK[1]=/bin dirs builtin pwd popd +2 builtin pwd -L pushd -1 dirs echo ${DIRSTACK[0]} dirs -c dirs # this is for the benefit of pure coverage cd "$MYDIR"