#!/bin/sh rrmmod() { mod="$1"; depends=$(rmmod "$mod" 2>&1) && return case "$depends" in ERROR:\ Module\ *\ is\ in\ use\ by\ *) depends="${depends#*is in use by }" for dep in ${depends//,/ }; do rrmmod "$dep"; done rrmmod "$mod" ;; *) echo "rmmod $mod: $depends" ;; esac } for mod in "$@"; do rrmmod "$mod"; done