#!/bin/bash useVar() { var=$1 val=$2 case "$var" in \$name) _name="$val";; \$union) echo 'union feature not yet implemented';; esac } setsrc() { mount_point=$1 dev=$2 case "$dev" in file://) ln -s "${dev#file://}" "$mount_point";; ftp://) ln -s "/$dev" "$mount_point";; *) echo "I don't know which protocol to use fo \`$dev'."; exit 1;; esac } # parse files for lst in *.lst; do echo 'loading `'$lst\''...' _name='oops' while read line; do if [ -n "$line" ]; then case "$line" in \#*) :;; #comment, do nothing \$*) #setting a variable var=${line%%=*} val=${line#$var} useVar "$var" "$val" :;; *) #setting a source grp=`echo "$line" | cut -f 1` src=`echo "$line" | cut -f 2` mkdir -p "$_name/$grp" setsrc "$_name/$grp" "$src" :;; esac echo $var == $val fi done < "$lst" done