maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   General (https://talk.maemo.org/forumdisplay.php?f=7)
-   -   [Help] [Solution Found] Script on N900 not calculating correctly. (https://talk.maemo.org/showthread.php?t=88121)

sixwheeledbeast 2012-12-04 18:50

[Help] [Solution Found] Script on N900 not calculating correctly.
 
1 Attachment(s)
I am having a issue with a script I am trying to write and I just can't work out why it's not working.

The issue is that on my N900 the multiply command on line 47 doesn't multiply correctly.
It however seems to work fine on my Ubuntu desktop which is puzzling me.
I have tried multiple methods to calculate but it just isn't correct.
I am trying to multiply a value by 100 (to get percent) and you can clearly tell that it isn't doing so.

The script is to calculate swap de-fragmentation without needing iostat

Any help will be greatly appreciated. Thanks

juiceme 2012-12-04 19:23

Re: [Help] Require help with script on N900.
 
quickly trying this in N9 at least it works...

~ #
~ # oneh=100 ; getcurrent=123 ; timeshundred=$(($getcurrent*$oneh)) ; echo $timeshundred
12300
~ #

So it seems that N900 has different shell... What does it give as an answer there?

thedead1440 2012-12-04 19:29

Re: [Help] Require help with script on N900.
 
Quote:

Originally Posted by juiceme (Post 1301402)
quickly trying this in N9 at least it works...

~ #
~ # oneh=100 ; getcurrent=123 ; timeshundred=$(($getcurrent*$oneh)) ; echo $timeshundred
12300
~ #

So it seems that N900 has different shell... What does it give as an answer there?

works on the n900 too:
Code:

/home/user # oneh=100 ; getcurrent=123 ;timeshundred=$(($get
current*$oneh)) ; echo $timeshundred
12300
/home/user #


juiceme 2012-12-04 19:49

Re: [Help] Require help with script on N900.
 
Okaay, then there is no other possibility than for some reason $getcurrent does not evaluate to a number.

mr_pingu 2012-12-04 19:53

Re: [Help] Require help with script on N900.
 
Did you try the same script in bash? There are some minor differences between ash and bash ;)

Try to run the script from bash, need to have bash3 (packagename) installed though.

trompkins 2012-12-04 20:53

Re: [Help] Require help with script on N900.
 
No idea why it wouldn't work. Maybe try replacing timeshundred formula with $(expr $oneh \* $getcurrent) ?

sixwheeledbeast 2012-12-04 21:22

Re: [Help] Require help with script on N900.
 
Quote:

Originally Posted by thedead1440 (Post 1301403)
works on the n900 too:
Code:

/home/user # oneh=100 ; getcurrent=123 ;timeshundred=$(($get
current*$oneh)) ; echo $timeshundred
12300
/home/user #


Okay so a completely fresh script on the N900 in question with the above works.
So is there something I have done further back in the script that is effecting it?

I have tried "let" and "expr" style claculations with the same results.
I also originally tried just putting "$getcurrent*100" and got the issue.

Installing bash now to see if it makes a difference.

sixwheeledbeast 2012-12-04 21:36

Re: [Help] [Solution Found] Require help with script not working correctly on N900.
 
Quote:

Originally Posted by mr_pingu (Post 1301417)
Did you try the same script in bash? There are some minor differences between ash and bash ;)

Try to run the script from bash, need to have bash3 (packagename) installed though.

Bash3 installed.
Changed to #!/bin/bash
Works a treat, thank you.
Is this a bug in ash/busybox?
Is there another way of doing this so my application doesn't depend on bash3?

mr_pingu 2012-12-04 21:52

Re: [Help] [Solution Found] Script on N900 not calculating correctly.
 
Not a bug of busybox, more of a feature which most of us don't like. Remember busybox is written in mind to be used on embedded devices so basically it's a stripped down version of bash.

It would probably possible to rewrite without the dependence on bash but then you should knock on somebody else door. I am not a good coder/scripter.

sixwheeledbeast 2012-12-04 22:08

Re: [Help] [Solution Found] Script on N900 not calculating correctly.
 
Quote:

Originally Posted by mr_pingu (Post 1301452)
Remember busybox is written in mind to be used on embedded devices so basically it's a stripped down version of bash.

Seems odd to make it calculate a simple multiplication incorrectly. I can understand stripping commands to make a lightweight version. Making commands not work correctly is plain stupid IMO.


All times are GMT. The time now is 17:17.

vBulletin® Version 3.8.8