bash problem?


 
Thread Tools Search this Thread
Operating Systems Solaris bash problem?
# 1  
Old 11-02-2010
bash problem?

I am using SunOS 5.9 and have the following outcome when using the sh and bash shells; has anyone else had this:
(tests behave differently)
Code:
bash-2.05$ ksh
$ if echo $SHELL; uname -a;[  201010111200 -gt 201010111100 ]; then echo yessssssssssssss; else echo  nooooooooooooooo; fi
SunOS s036cln001014 5.9 Generic_118558-27  sun4u sparc SUNW,Sun-Fire-V890
yessssssssssssss
$ exit
bash-2.05$  bash
bash-2.05$ if echo $SHELL; uname -a;[ 201010111200 -gt 201010111100 ];  then echo yessssssssssssss; else echo nooooooooooooooo; fi
SunOS  s036cln001014 5.9 Generic_118558-27 sun4u sparc  SUNW,Sun-Fire-V890
nooooooooooooooo
bash-2.05$ exit
exit


Last edited by Franklin52; 11-02-2010 at 10:00 AM.. Reason: Please use code tags
# 2  
Old 11-02-2010
You are doing numeric comparisons... -gt
201010111200 your number
2147483648 the maximum value for numeric operations that POSIX requires

In other words, you are seeing undefined behavior. ksh happens to work; bash does not -
neither one is required to work. awk,perl,ruby, etc, handle up to 15 digits of precision.

Or change it to a string compare:
Code:
[ "201010121200" > "201010121100" ]

This User Gave Thanks to jim mcnamara For This Post:
# 3  
Old 11-02-2010
I believe that introducing the ">" won't solve the problem. Funnily enough, the construct works with bash under SunOS 5.10. I'm merely interested whether anyone else encountered the problem.
# 4  
Old 11-02-2010
ksh and bash-3 installed with Solaris 10 use 64 bit integers. (Note: 9223372036854775807 is 2^63-1)

ksh:

Code:
$ typeset -i i=9223372036854775807; echo $i
9223372036854775807
$ typeset -i i=9223372036854775808; echo $i

$

bash-3:

Code:
bash-3.00$ typeset -i i=9223372036854775807; echo $i
9223372036854775807
bash-3.00$ typeset -i i=9223372036854775808; echo $i
-9223372036854775808
bash-3.00$

The Solaris 9 ksh version seems also to use 64 bit arithmetic.
This User Gave Thanks to hergp For This Post:
# 5  
Old 11-03-2010
Jim and hergp: I take the point about the 32/64 bit issue (maxima: 2147483648/9223372036854775807); thanks for the information. It's just that my script - using bash - was failing on the 5.9 and working on the 5.10 system).
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

A bash problem

Hi, I'm fairly new to unix, and I have the following problem: I know that if I type, "ps -ef | grep process", this will return some information about the process named 'process'. What I need this to do is be piped to an extra search that pick's out process' PID. How do I do this? Thanks in... (5 Replies)
Discussion started by: bogof_tom
5 Replies

2. Shell Programming and Scripting

Problem With Bash Scripting

What's up guys, I am currently trying to figure out the answer to this question and I cannot for the life of me! The question is : "Explain how to do the following in UNIX/Linux shell script. You are not expected to remember the exact command syntax, but explain approximately how you would... (1 Reply)
Discussion started by: malikirl
1 Replies

3. Shell Programming and Scripting

zero padding problem (bash)

Hi there, I need to loop some values, for i in $(seq $first $last) do does something here donefor $first and $last, i need it to be of fixed length 5. so if the input is 1, i need to add zeros in front such that it becomes 00001. It loops till 99999 for example, but the length has to be... (4 Replies)
Discussion started by: jremio
4 Replies

4. Shell Programming and Scripting

Problem with bash if

Hi, i am making a little script that when its invoked with p or f, it will do different things (p will ask the user to input an string and it will count its words , and f will ask the user a directory and will list the number of files in that directory. But if wont get the comparation string... (1 Reply)
Discussion started by: lamachejo
1 Replies

5. Shell Programming and Scripting

bash problem

hello i am new with linux hello unix forum. i have big problem i want to install the samp server for every user folder for ex.. samp for my frined name fred fredsamp then i want create more samp to my firend lee i want folder name will be leesamp i want to know how make the script put the... (0 Replies)
Discussion started by: mage200
0 Replies

6. Shell Programming and Scripting

bash problem with if

#!/bin/bash # This script takes two arguments: <path> and <dir>. It has to copy in <dir> #+ all regular files in <path> with .c extension containining at least one while #+ instruction and one if instruction. if then for file in $(ls "$1" | grep "\.c$") do if # doesn't... (9 Replies)
Discussion started by: Luke Bonham
9 Replies

7. Shell Programming and Scripting

bash problem

I have a ksh script with the following code and working fine under ksh. IFS=$IFS IFS=: while read a b c do test "$a" = "$oraserver" && { orahome=$b; break; } echo $orahome done < /var/opt/oracle/oratab2 IFS=$_IFS ... (13 Replies)
Discussion started by: talashil
13 Replies

8. Shell Programming and Scripting

problem about '..' in bash

There is an interview question about UNIX bash: Some shells like bash try to make '..' always work propery, namely, from home directory, cd ../$USER will place you in your home directory. Does bash always get this behavior correct? Anyway can provide any example that bash doesnt work well? ... (4 Replies)
Discussion started by: usfish
4 Replies

9. Shell Programming and Scripting

Bash problem

Hello there, I'm a beginner in bash programining and I have a problem with the interpretetion of the code: sed -e "s/\(*\):.*/\1/" in this for loop: for process in $(sed -e "s/\(*\):.*/\1/" /etc/passwd) thx for any help edgehead (3 Replies)
Discussion started by: edgehead
3 Replies

10. Shell Programming and Scripting

Bash while loop problem

Hi, I'm having a problem with the while loop in bash. I try the following script: #!/bin/bash while true do echo "test" done When I try this, it gives me this error: while: Too few arguments. What am I doing wrong? Thanks (5 Replies)
Discussion started by: Kweekwom
5 Replies
Login or Register to Ask a Question