Argumente an Alias weitergeben

Den meisten Leuten dürfte  bekannt sein, dass man einer Aliasfunktion Argumente übergeben kann. Mir war es neu / ich war noch nie auf die Idee gekommen sowas zu tun :). Ein Beispielaufruf:

create_audiobook ()
{
mpg123 -s $1 | faac -P -X -w -o $2 –
}
create_audiobook (){
mpg123 -s $1 | faac -P -X -w -o $2 -
}

$1 & $2 wären die Variablen, die gesetzt sein sollten für den Aufruf. Problematisch wirds, wenn nur ein oder gar kein Argument mitgegeben wird. Das kann man mit einer simplen If Abfrage validieren:

create_audiobook (){
expr1=$2
expr2=$1
if [ "$expr1" -a "$expr2" ]
then
	mpg123 -s $1 | faac -P -X -w -o $2 -
else
	echo "Usage: create_audiobook INPUTFILE OUTPUTFILE"
fi
}

Das Fleißsternchen bekommt man, wenn man die Existenz der Befehle vor der Ausführung abprüft:

create_audiobook (){
APP1=mpg123
APP2=faac

if which $APP1 &>/dev/null && which $APP2 &>/dev/null
then
	echo "$APP1 & $APP2 found"
else
	echo "Please install $APP1 & $APP2"
	exit
fi

expr1=$2
expr2=$1
if [ "$expr1" -a "$expr2" ]
then
	mpg123 -s $1 | faac -P -X -w -o $2 -
else
	echo "usage: create_audiobook INPUTFILE OUTPUTFILE"
fi
}
######create_audiobook konvertiert ein mp3 zu einer mp4 Datei

Mich würde an dieser Stelle noch interessieren, ob Ihr im Community Planeten an solchen Posts interessiert seid, oder ob ich solche Ergüsse für mich behalten sollte^^.