Getting an “ambiguous redirect” error

Bash can be pretty obtuse sometimes.

The following commands all return different error messages for basically the same error:

$ echo hello >
bash: syntax error near unexpected token `newline`

$ echo hello > ${NONEXISTENT}
bash: ${NONEXISTENT}: ambiguous redirect

$ echo hello > "${NONEXISTENT}"
bash: : No such file or directory

Adding quotes around the variable seems to be a good way to deal with the “ambiguous redirect” message: You tend to get a better message when you’ve made a typing mistake — and when the error is due to spaces in the filename, using quotes is the fix.

Leave a Comment