Hi Tito ! >> > #!/bin/sh >> > exec busybox wget -T xxx $@ >> >> Also it's better to expand argumanet properly wrt whitespace - >> use "$@", not $@: >> >> exec busybox wget -T xxx "$@"
Denys, you are right, I missed that topic! Using argument quotes is my usual style. >but even using "$@" whitespace in a URL must be correctly >escaped or it will not work with busybox wget and with real wget. The reason for this is the point when arguments get expanded or split into words. >Busybox wget with wrapper and "$@" and URL escaped: >./wget -c ftp://192.168.1.1/STORE_N_GO/test/Text\ File.txt Here you pass the wrapper two arguments: arg[1] = '-c' arg[2] = 'ftp:.../Text File.txt' Quoting those arguments in the script wrapper avoids those arguments being split into three words: With $@ the wget (program) would receive: arg[1] = '-T' arg[2] = 'xxx' arg[3] = '-c' arg[4] = 'ftp:.../Text' arg[5] = 'File.txt' With "$@" the wget program receive (as expected): arg[1] = '-T' arg[2] = 'xxx' arg[3] = '-c' arg[4] = 'ftp:.../Text File.txt' >Busybox wget with wrapper and "$@" and URL not escaped: >./wget ftp://192.168.1.1/STORE_N_GO/test/Text File.txt The reason here: The URL is getting split into two arguments by the *calling* shell. The wrapper receive: arg[1] = '-c' arg[2] = 'ftp:.../Text' arg[3] = 'File.txt' As the arguments don't contain further characters which require qouting using $@ gives same results as "$@". Using "$@" avoids unexpected word splitting when calling shell/program passes arguments containing space or other special characters. -- Harald _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
