Bash script, string validation help

Posted on 2007-04-04
Last Modified: 2013-12-26
i have a small code
lets say:
echo "Give me the port"
read port
how can i see if $port is formed only by numbers and do a while (while port is not formed only by numbers echo "the port is wrong written, type it again")

Question by:rares_dumitrescu
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
LVL 84

Accepted Solution

ozo earned 350 total points
ID: 18848993
while echo $port | grep -v '^[0-9]*$' ; do
  echo "Give me the port"
  read port
LVL 48

Assisted Solution

Tintin earned 150 total points
ID: 18848998
while true
  echo -e "Give me the port: \c"
  read port

  [ -z "$port" ] && continue
  echo $port | grep -q "^[0-9][0-9]*$" && break
  echo "the port is wrong.  Please type it again"

echo "Port number is $port"

Author Comment

ID: 18849324
Any ideeas on how to put this in a while for a dialog menu ?

The code is:

if [ "$answer" = "1" ]; then
cat /dev/null > $tempfile
   dialog --title "You are using the command - getpsy" \
          --inputbox "Please select the port for the psybnc \n\
You are now using the port: $port" 8 45 $port
   port=`cat $tempfile`

while [ -here if the port is lower than 1500 or it contains charcters, the script should ask for the port again- ]
cat /dev/null > $tempfile

   dialog --title "You are using the command - getpsy" \
          --inputbox "Please select the port for the psybnc \n\
You are now using the port: $port" 8 45 $port
   port=`cat $tempfile`
cat /dev/null > $tempfile

What can i put in that while [ ] ?
LVL 84

Expert Comment

ID: 18849439
while echo $port | grep  '[^0-9]' || test "$port" -lt 1500 ; do

Featured Post

Linux Academy Android App Now Supports Chromecast

We have some fantastic news for our Android fans. We’re so excited to announce that the Linux Academy Android app is now available with Chromecast support. That’s right – simply download the latest update of the Linux Academy App and start casting your favorite course videos!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction: Dynamic window placements and drawing on a form, simple usage of windows registry as a storage place for information. Continuing from the first article about sudoku.  There we have designed the application and put a lot of user int…
Introduction: The undo support, implementing a stack. Continuing from the eigth article about sudoku.   We need a mechanism to keep track of the digits entered so as to implement an undo mechanism.  This should be a ‘Last In First Out’ collec…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
Suggested Courses

630 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question