test the string is char or integer


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users test the string is char or integer
# 8  
Old 10-09-2008
I thought of case 1st too, but I was not able to put the expressions together so it would work correctly. Since I was nosy I tried your case script, and it does not work for me either like my former tries with case (just changed $string to $1):

Code:
root@isau02:/data/tmp/testfeld> ./era.ksh ab1cde
Pure alpha

# 9  
Old 10-09-2008
You are correct of course; the matching is greedy, and tries its darndest to find a match, so using a negation between wildcards will find a match if there is a way to match it, regardless of the other characters. So the label "pure alpha" is wrong; it should be "alpha + possibly numbers", or the logic should be changed to do additional cases within that case statement.

Code:
case $string in
  *[!0-9A-Za-z]*) echo "Not pure alpha + numbers" ;;
  '') echo "Empty string (duh)" ;;
  *[0-9]*[!0-9]*|*[!0-9]*[0-9]*) echo "Mixed alpha + numbers" ;;
  *[!0-9]*) echo "Pure alpha";;
  *) echo "Pure numbers" ;;
esac

# 10  
Old 10-09-2008
How greedy! Smilie Smilie
I guess we found, thanks to the OP, that we are lacking a fine small binary standard tool to check stuff like this! Smilie (though I never needed that yet). But aren't there tools about for everything?! Smilie
# 11  
Old 10-10-2008
It is probably time we started using POSIX character classes in our examples more often!
Code:
#!/bin/bash

shopt -s extglob

INPUT="123"

case $INPUT in
   ( +([[:digit:]])  ) echo "$INPUT is all numbers" ;;
   ( +([[:alpha:]])  ) echo "$INPUT is all characters" ;;
   ( +([[:alnum:]])  ) echo "$INPUT is alphanumeric" ;;
   (                *) echo "$INPUT is empty or something unknown" ;;
esac

exit 0

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl Script Integer Test

Working out a small problem, I have a need of a Perl snippet which might look something like this: use integer; ... if ($changingNumber / 2) { do something; } else { do something else; } ... What I want to happen is for "if" to resolve as "true" every time a whole... (3 Replies)
Discussion started by: LinQ
3 Replies

2. Shell Programming and Scripting

How do I test the first char of each line in an array

Hi folks, I am self-learning as I can I have a script that has read a file into an array. I can read out each line in the array with the code: for INDEX in {0..$LENGTH} ## $LENGTH was determined at the read in do echo "${data}" done What I need to do is test the first char... (2 Replies)
Discussion started by: Marc G
2 Replies

3. Shell Programming and Scripting

how to compare string integer with an integer?

hi, how to I do this? i="4.000" if ; then echo "smaller" fi how do I convert the "4.000" to 4? Thanks! (4 Replies)
Discussion started by: h0ujun
4 Replies

4. Programming

I don't know how to replace input char with appropriate integer

Hi guys, I asked for help on programming forums and no one didn't helped me so I ask for help here. I am playing with some tasks from my book and I can't figure where did I get wrong. From the first program I get a blank screen, program won't generate 10*10 matrix. And second problem is I... (6 Replies)
Discussion started by: solaris_user
6 Replies

5. Shell Programming and Scripting

How to check weather a string is like test* or test* ot *test* in if condition

How to check weather a string is like test* or test* ot *test* in if condition (5 Replies)
Discussion started by: johnjerome
5 Replies

6. Shell Programming and Scripting

Test on string containing spacewhile test 1 -eq 1 do read a $a if test $a = quitC then break fi d

This is the code: while test 1 -eq 1 do read a $a if test $a = stop then break fi done I read a command on every loop an execute it. I check if the string equals the word stop to end the loop,but it say that I gave too many arguments to test. For example echo hello. Now the... (1 Reply)
Discussion started by: Max89
1 Replies

7. Programming

to compare two integer values stored in char pointers

How can I compare two integer values which is stored in char pointers? suppose I have char *a and char *b having values 10 and 20. how can i find the shorter value? (1 Reply)
Discussion started by: naan
1 Replies

8. Programming

C function to test string or integer

Hi everyone , Is there any predefined C function that tests whether an input is string or an integer? Thank's in advance :) (3 Replies)
Discussion started by: qqq
3 Replies

9. Programming

Integer to String

Which function should I use to convert an Integer to a String or Char format ? Thanx (2 Replies)
Discussion started by: psilva
2 Replies
Login or Register to Ask a Question