#!/bin/bash # function ismounted("PATH") # # checks if a given PATH is actually a mount.. # # v2019-04-24T21-18-56CEST (UTC+2) # Added some bits of documentation and links for # more in depth info. ;) # function ismounted() { # this funtion performs the actual test # if a path given as parameter is actually a mount. # # it uses default sh/bash return codes, according to this hint: # https://stackoverflow.com/questions/5431909/returning-a-boolean-from-a-bash-function/43840545#43840545 # # Which means, on success, return 0, # on a failure (is not a mount) return anything else. # # the cut and grep below, just grab the mounted dirs from # /proc/self/mounts (delimeter is space and we want field number 2) # and then filters them (with exact match) against our parameter. # # After that, we can simply compare the trings we got. # It will be empty if no mount is found or it will exactly # be the path we got as parameter... # # http://tldp.org/LDP/abs/html/comparison-ops.html # if ! [ -d "$1" ] ; then # if our parameter is not a directory at all, # it usually can not be a mount... ;) return 1 fi if [ "$(cut -d' ' -f2 /proc/self/mounts | grep -x "$1")" = "$1" ] ; then # our parameter matches against a existing mount, # just return with a exit status of 0 return 0 else # our parameter got no match, # so we return with a exit status of 1 return 1 fi } # # this variant just uses the exitstatus to see if # the dir is a mount. # if ismounted $1 ; then echo "$1 is mounted!" else echo "$1 is not mounted!" fi # # this variant calls ismounted and _inverts_ the returned exitstatus # to get the stuff convenient for our test-case ( i need to know if mounts are _NOT_ existing) # if ! ismounted $1 ; then echo "$1 is not mounted!" else echo "$1 is mounted!" fi