openmind ☃   July 29, 2006  ☃  Bash: (u)mount a List of Directories  (, )

# mount a list of directories
#  see: http://www.bioinspired.com/users/ajg112/software/bashTips.shtml#mountTest
function mountdrum()
{
    DRUM_DIRS=( "/home/ns/drum/audio" "/home/ns/drum/media" "/home/ns/drum/bak" )
    for DIR in "${DRUM_DIRS[@]}"
    do
        MOUNT_INFO=$(mount|awk -v mnt="$DIR" '{if($3 == mnt) print $3}')
        if [ "$MOUNT_INFO" == "" ]
        then
            echo "Mounting $DIR..."
            mount "$DIR"
        else
            echo "$DIR is mounted."
        fi
    done
}

EDIT Mon Jul 31 19:15:48 CDT 2006]:
Oh, shit! They’re mounted! What now?

# umount a list of directories
function umountdrum()
{
    DRUM_DIRS=( "/home/ns/drum/audio" "/home/ns/drum/media" "/home/ns/drum/bak" )
    for DIR in "${DRUM_DIRS[@]}"
    do
        MOUNT_INFO=$(mount|awk -v mnt="$DIR" '{if($3 == mnt) print $3}')
        if [ "$MOUNT_INFO" == $DIR ]
        then
                echo "Unmounting $DIR..."
                umount "$DIR"
        else
                echo "$DIR is not mounted."
        fi
    done
}

Edit 2006/08/23: This is awfully duplicative code. But how to make it better?

blog comments powered by Disqus