№3
С использованием readlink Нужно запустить файл лежащий рядом с данным скриптом, при том, что запускаем мы не сам скрипт а симлинк на него. Может пригодиться, например для запуска java-приложений скачанных отдельно а не через репозиторий. Допустим приложение - файл tool.jar:
#!/bin/sh
LINK=`readlink $0`
if [ -z ${LINK} ]; then
LINK=$0
fi
DIRNAME=`dirname ${LINK}`
java -jar $DIRNAME/tool.jar