The exec type takes commands and arguments as a string, (@"echo foo"@) which will then get passed to /bin/sh (@sh -c "echo foo"@) by Kernel#system.
This can make things pretty awkward if the command you're trying to execute contains shell metacharacters or quotes of its own, and under appropriately pathological conditions could even be a security problem... (username '"&&rm -rf /' or something? shrug)
It'd be grand if the exec type would support passing things around as arrays. eg:
(Passing an array to Kernel#system bypasses the shell completely: http://www.ruby-doc.org/core/classes/Kernel.html#M005982)