How to do array operation in busybox

Sven-Göran Bergh sgb-list+busybox at systemaxion.se
Fri Jun 26 06:31:06 UTC 2015


On 06/26/2015 07:59 AM, Pratik Prajapati wrote:
> I tried one method and was unable to correct it. Can you give me the
> correct method ?
>
> On Fri, Jun 26, 2015 at 11:25 AM, Sven-Göran Bergh
> <sgb-list+busybox at systemaxion.se
> <mailto:sgb-list+busybox at systemaxion.se>> wrote:
>
>     Hi Patrik
>
>     On 06/26/2015 07:49 AM, Pratik Prajapati wrote:
>
>         Hi,
>
>         I am working on LTP-DDT project (https://github.com/rogerq/ltp-ddt)
>         which i cross-compiled for my target and my target uses busybox. But
>         running it on my target gives me error as array operation is not
>         supported in busybox.
>
>         I have attached script with this mail.
>
>         I am getting error for :
>
>         sh: /opt/ltp/testcases/bin/ddt/common/common.sh: line 305:
>         syntax error:
>         bad substitution
>
>         I tried this:
>
>         |305: shift
>         306: index=0
>         307: for  arg;
>         308: do
>         309:   x[$index]=$arg
>         310:   ((index++))
>         311: done

I am afraid that the work around is quite ugly. In this case
you may use the evil eval:

index=0
for arg;
do
	eval x${index}=$arg
	eval printf "x%s:\\\t%s\\\n" "${index}" "\$x${index}"
	((index++))
done

Yes, I know it is ugly and I said so.
Arrays are one of the things I miss the most in ash.

Brgds
/S-G


>         |but i got error:|  syntax error: unexpected "(" (expecting "}")
>
>         Also couldn't found any solution on google.
>
>         How to make it work on busybox. Please help.
>
>
>     Arrays is a bash feature, it is not supported by ash or standard
>     shells. So unfortunately the short answer is that it does not work.
>     However there are often ways to rework a script to avoid arrays.
>
>     Brgds
>     /S-G
>
>
>         Thanks,
>
>         Pratik
>
>
>
>         _______________________________________________
>         busybox mailing list
>         busybox at busybox.net <mailto:busybox at busybox.net>
>         http://lists.busybox.net/mailman/listinfo/busybox
>
>



More information about the busybox mailing list