On 03/10/2010 03:54 AM, Andy Koppe wrote: >>> $ builtin exec "$WINDIR\system32\cmd.exe" /C echo ok >>> -bash: exec: C:\WINDOWS\system32\cmd.exe: not found >>> >> Is it me, or is the quoting all wrong? Doesn't backslash in the double >> quote (") acts as an escape character. i.e \s = s, \c = c etc. > > http://www.gnu.org/software/bash/manual/bashref.html#Double-Quotes: > The backslash retains its special meaning only when followed by one of > the following characters: ‘$’, ‘`’, ‘"’, ‘\’, or newline.
That's bash's rules. According to POSIX, "\n" has undefined behavior. And in some other implementations, such as Solaris sh, "\n" is interpolated by the shell as a newline. Bash instead does the interpolation when you use $'\n'. But the moral of the story is that within "", it is only portable to use \ if it is followed by one of the four bytes specifically documented by POSIX. -- Eric Blake ebl...@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature