Se você não se importa com a falta de mensagens de erro para erros de sintaxe etc., você pode usar este script simples:
#!/bin/bash
case $1 in
--add)
if [ -a ~/.favorites/$2 ]; then
echo favorite: Shortcut \'$2\' already exists.
else
echo $3 >> ~/.favorites/$2
fi
;;
--delete)
if [ -a ~/.favorites/$2 ]; then
rm ~/.favorites/$2
else
echo favorite: Shortcut \'$2\' does not exist.
fi
;;
*)
if [ -a ~/.favorites/$1 ]; then
$(cat ~/.favorites/$1)
else
echo favorite: Shortcut \'$1\' does not exist.
fi
esac