Per parametrizzare il comando come diavolo si fà ? (lo so sarà una baggianata ma non ci riesco!)

Questa funziona :
exec('mysqldump -uSql998337 -p******** -h****** Sql998337_1 > backup.sql'

Questa NON funziona :
exec('mysqldump --quote-names --u=$user --password=$pass --h=$host $db > $nomefile.sql');

dove mi schianto?

Nota : vengono lanciate da file php