Чё-то вы идиотское там делаете…
Но вообще вам нужно fifo использовать
что-то наподобие
DUMP_FILE=/path/to/fifo
mkfifo $DUMP_FILE
while 1; do
mysql_dump > $DUMP_FILE
done
Т.е. мусклдамп начнет отдавать данные только когда кто-то начнет читать из /path/to/fifo. Т.к. оно зациклено то при каждом чтении будет выдаваться новый дамп. Но я не уверен что mysql_dump не залочит БД сразу при запуске.
Но лучше бы вам просто скрипт для дампа написать и не заниматься фигней.