Using until

The until command is similar to the while command. The given statements in the loop are executed as long as they evaluate the condition as true. As soon as the condition becomes false, then the loop is exited.

The syntax is as follows:

until command
do
    command(s)
done

In the following script until_01.sh, we are printing numbers 0-9 on screen. When the value of variable x becomes 10, then the until loop stops executing:

#!/bin/bash
x=0
until [ $x -eq 10 ]
do
  echo $x
  x=`expr $x + 1`
done

Let's test the program:

$ chmod +x until_01.sh
$ ./until_01.sh

The following will be the output after executing the preceding commands:

0
1
2
3
4
5
6
7
8
9

In the following script until_02.sh, we ask the user to input text. We are printing entered text on the screen. When the user enters the text quit, the until loop ends the iterations:

#!/bin/bash
INPUT=""
until [ "$INPUT" = quit ]
do
   echo ""
   echo 'Enter a word (quit to exit) : '
   read INPUT
   echo "You typed : $INPUT"
done

Let's test the program:

$ chmod +x until_02.sh
$ ./until_02.sh

The following will be the output after executing the preceding commands:

Enter a word (quit to exit) :
Ganesh
You typed : Ganesh

Enter a word (quit to exit) :
Naik
You typed : Naik

Enter a word (quit to exit) :
quit
You typed : quit

In the following script until_03.sh, we are passing the username as a command-line parameter to the script. When required, the user logs in the grep command and will find it from the output of the who command. Then, the until loop will stop iterations and inform on screen about the user login:

#!/bin/bash
until who | grep "$1" > /dev/null
do
  sleep 60
done
echo -e \a
echo "***** $1 has just logged in *****"
exit 0

Let's test the program:

$ chmod +x until_03.sh
$ ./until_03.sh User10

The following will be the output after executing the preceding commands:

"***** User10 has just logged in *****"

This message will be displayed when user10 has logged into the server.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset