Remove ^ from the list of quote-requiring characters.
In retrospect, when we added & in commit d1f7d07f, we should have been
replacing ^ with it instead. It looks like I typo'd the list.
diff --git a/shell.go b/shell.go
index 287b60b..dc84b75 100644
--- a/shell.go
+++ b/shell.go
@@ -25,7 +25,7 @@
// These characters must be quoted to escape special meaning. This list
// doesn't include the single quote.
-const mustQuote = "|^;&<>()$\\\"\t\n`"
+const mustQuote = "|&;<>()$`\\\"\t\n"
// These characters should be quoted to escape special meaning, since in some
// contexts they are special (e.g., "x=y" in command position, "*" for globs).