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