Comparison treating strings as zero integers


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Comparison treating strings as zero integers
# 1  
Old 09-16-2012
Comparison treating strings as zero integers

I'm trying to write a bash script to perform basic arithmetic operations but I want to run a comparison on the arguments first to check that they're a number greater than zero.

I want an error to pop up if the arguments args aren't >= 0 so I have:

Code:
if ! [[ $1 -ge 0 ]]; then
echo "bad number: $1"
fi

But whenever I type in something like "blah + 9" it should tell me "bad number: blah", instead it treats "blah" as a zero and it gives the output as 9. If I use -gt 0 it eliminates the "blah" but also doesn't let me use zeros.
# 2  
Old 09-16-2012
Code:
#! /bin/bash

if [[ `echo $1 | egrep "^[0-9]*$"` ]]
then
    echo "good number: $1"
else
    echo "bad number: $1"
fi

# 3  
Old 09-16-2012
Code:
if [[ $1 == ?(+)+([0-9]) ]]
then
echo positive number
else
echo not a positive number
fi

# 4  
Old 09-16-2012
Neither of those cures my problem. It still reads non numbers as zero.
# 5  
Old 09-16-2012
Code:
case "$string" in
[0-9]*) ;;
-[0-9]*) ;;
*) echo "Not integer" ;;
esac

# 6  
Old 09-16-2012
Whoa, I have no idea what that means. Can you please explain the logic behind this? I'll try it now though.
# 7  
Old 09-16-2012
Quote:
Originally Posted by TierAngst
Neither of those cures my problem. It still reads non numbers as zero.
could you please post your input and output with the script.

Last edited by pamu; 09-16-2012 at 03:04 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Strings to integers?

Hi, I'm totally new at this, so help will be appreciated. I have a directory with a bunch of files in it. The files are named xinteger_yinteger_zinteger.vtk (eg, x3_y0_z-1.vtk). I want to read the filenames and then assign the integers to variables that I then can use in expressions. So, for... (6 Replies)
Discussion started by: jhsinger
6 Replies

2. Shell Programming and Scripting

awk -- telling the difference between strings and integers

This should be a really easy question. My input file will have a few fields that are strings in the first line, which I will extract and save as variables. The rest of the fields on every line will be integers and floating point numbers. Can awk tell the difference somehow? That is, is there... (5 Replies)
Discussion started by: Parrakarry
5 Replies

3. Shell Programming and Scripting

Grep float/integers but skip some integers

Hi, I am working in bash in Mac OSX, I have following 'input.txt' file: <INFO> HypoTestTool: >>> Done running HypoTestInverter on the workspace combined <INFO> HypoTestTool: The computed upper limit is: 11 +/- 1.02651 <INFO> HypoTestTool: expected limit (median) 11 <INFO> HypoTestTool: ... (13 Replies)
Discussion started by: Asif Siddique
13 Replies

4. Shell Programming and Scripting

Create a name of a file by comparison of strings

Hello everybody, I need to create a file name from string. The thing is: I have a directory with files e.g: test.123 test.234 test.345 test.987 The name should be made from the first and last name of file alphabetically and from the directory, they are in, eg. ... (2 Replies)
Discussion started by: satin1321
2 Replies

5. Shell Programming and Scripting

Strings to integers in an arithmetic loop

Hi all, Could someone please advise what is the correct syntax for my little script to process a table of values? The table is as follows: 0.002432 20.827656 0.006432 23.120364 0.010432 25.914184 0.014432 20.442655 0.018432 20.015243 0.022432 21.579517 0.026432 18.886874... (9 Replies)
Discussion started by: euval
9 Replies

6. Shell Programming and Scripting

Case insensitive comparison of strings

Hi All, In one shell script I have In variable "i" I am getting a full path of a file. Now I want to compare something like -- upper(*Nav*)) I dont want to do like below because in each CASE statement I doing so many operations. Please guide me. Thanks in advance... (4 Replies)
Discussion started by: vishalaksha
4 Replies

7. Shell Programming and Scripting

Treating Strings with spaces

I have a file list.txt which has a list of file names with spaces between the file names like /emptydir/file 1 how do i browse through the list.txt displaying the filenames. Almost all the file names in list.txt have space between them.This file list.txt is formed by using the find statement to... (5 Replies)
Discussion started by: kinny
5 Replies

8. Shell Programming and Scripting

Comparison of two files which contains strings using Shell scripting or PERL

Hi, I need sample code to compare the two files line by line which contains text strings and to print the difference in the third file. Thanks in advance (1 Reply)
Discussion started by: sudhakaryadav
1 Replies

9. Shell Programming and Scripting

comparison of strings in unix shell scripting

Hi STORAGE_TYPE=$1 echo "########### SQL SESSION STARTED ###########" VALUE=`sqlplus -S /nolog << THEEND connect tcupro/tcupro_dev@bdd1optn SET SERVEROUTPUT ON DECLARE V_STORAGE_TYPE varchar2(3); V_ERR_MSG varchar2(255) ; V_LOG_LEVEL varchar2(200); BEGIN... (1 Reply)
Discussion started by: piscean_n
1 Replies

10. Shell Programming and Scripting

Comparison of 2 strings

I need some help with a script which accepts multiple rows of input (analysis from a virtual robot's testrun) from the standard in, and compares it as a whole with another file featuring erroneous data from a virtual robot's test run. What I want it to be able to do is slice off all the erroneous... (2 Replies)
Discussion started by: Retribution
2 Replies
Login or Register to Ask a Question