#!/bin/bash
dir1=/usr/local
dir2=/var/spool
pushd $dir1
# Will do an automatic 'dirs' (list directory stack to stdout).
echo "Now in directory `pwd`." # Uses back-quoted 'pwd'.
# Now, do some stuff in directory 'dir1'.
pushd $dir2
echo "Now in directory `pwd`."
# Now, do some stuff in directory 'dir2'.
echo "The top entry in the DIRSTACK array is $DIRSTACK."
popd
echo "Now back in directory `pwd`."
# Now, do some more stuff in directory 'dir1'.
popd
echo "Now back in original working directory `pwd`."
exit 0
# What happens if you don't 'popd' -- then exit the script?
# Which directory do you end up in? Why?
[root@localhost shell]# ./ex37.sh
/usr/local /home/shell
Now in directory /usr/local.
/var/spool /usr/local /home/shell
Now in directory /var/spool.
The top entry in the DIRSTACK array is /var/spool.
/usr/local /home/shell
Now back in directory /usr/local.
/home/shell
Now back in original working directory /home/shell.