Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I am not sure what exactly do you want to achieve. In bash everything is a string, there aren't any other data types. What is exactly what you need to do?
Like Perl, PHP, JavaScript and similar languages, if a value can be interpreted as a number, then it will be treated as one when you try to use it as a number, and as a string when you try to use it as a string:
ok, so really, even if a = "1234" and i try to test it against a known integer like (b=1235) and use "-lt", it'll work ok? hmmm..i'll try that.
thanks so much....for some reason i thought i had to convert it to the same type...im so used to other languages needing to know the type, i never would have thought that would work..
ok, so really, even if a = "1234" and i try to test it against a known integer like (b=1235) and use "-lt", it'll work ok? hmmm..i'll try that.
thanks so much....for some reason i thought i had to convert it to the same type...im so used to other languages needing to know the type, i never would have thought that would work..
Yes. That's the way bash does it. It doesn't have any proper data type separation which can be a bit confusing at first. Some examples:
Code:
if [ "$A" -lt "$B" ]; then echo "$A is lesser than $B"; fi
if [ ! "$A" -lt "$B" ]; then echo "$A is not lesser than $B"; fi
if [ "$A" -ge "$B" ]; then echo "$A is greater than or equal to $B"; fi
if [ "$A" -eq "$B" ]; then echo "$A is equal to $B"; fi
if [ "$A" == "$B" ]; then echo "$A is equal to $B"; fi
if [ "$A" == "1024" ]; then echo "$A is equal to 1024"; fi
Last edited by i92guboj; 04-05-2009 at 05:01 PM.
Reason: corrections
Yes, there are different operators, but that doesn't make the data typing of bash any more solid. It only applies to a conceptual level, but for bash everything is a string.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.