added escapeshellcmd()