Denys Vlasenko wrote:
On Saturday 26 June 2010 16:12, Ralf Friedl wrote:
I have the following effect with this script:
$ cat /tmp/test.sh
#!/bin/sh
IP=192.168.0.1
echo "${IP//./\\.}"
echo "${IP//./\\.}"' '
echo "${IP//./\\.}"'['
echo "${IP//./\\.}["
echo "${IP//./\\\\.}["
# end
$ ash /tmp/test.sh
192\.168\.0\.1
192\.168\.0\.1
192.168.0.1[
192.168.0.1[
192\.168\.0\.1[
$ bash /tmp/test.sh
192\.168\.0\.1
192\.168\.0\.1
192\.168\.0\.1[
192\.168\.0\.1[
192\\.168\\.0\\.1[
The intent is to build a regular expression that has the dots quoted. It
works when nothing follows the substitution (1. echo). It works when
followed by a quoted space, or every other character I tried (2. echo).
The quote doesn't appear when it is followed by an opening bracket,
either in single quotes or in double quotes (3. echo and 4. echo). It
seems that in this case extra backslashes are needed (5. echo). The
substitution is performed, but the following bracket somehow causes an
extra unquoting of the argument.
The results with bash are different.
BusyBox is v1.16.1.
Please try attached patch.
The patch is working, thank you.
Ralf
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox