echo expands nil from C backslash sequences just fine: andres@pote:~/tmp $ alias vis vis='vis -cl -F$COLUMNS' andres@pote:~/tmp $ echo '\0a' | vis \0a\$ andres@pote:~/tmp $ perl -e 'print "\0a\n"' | vis \0a\$
what's most likely happening is that the protocol that you're targeting treats '\0' as some kind of delimiter: andres@pote:~/tmp $ echo '\0a' | nc localhost 587 220 pote.my.domain ESMTP Sendmail 8.14.5/8.14.5; Mon, 17 Dec 2012 16:13:51 -0430 (VET) 500 5.5.1 Command unrecognized: ""

