0% found this document useful (0 votes)
33 views30 pages

Workshop 19

This document provides an introduction to Bash scripting. It discusses various Bash scripting concepts like variables, conditional statements (if/then, if/then/else, case), loops (while, for, until), functions, passing parameters to functions, and returning values from functions. Examples are given for each concept to demonstrate how it can be implemented in a Bash script.

Uploaded by

Burner
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views30 pages

Workshop 19

This document provides an introduction to Bash scripting. It discusses various Bash scripting concepts like variables, conditional statements (if/then, if/then/else, case), loops (while, for, until), functions, passing parameters to functions, and returning values from functions. Examples are given for each concept to demonstrate how it can be implemented in a Bash script.

Uploaded by

Burner
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

Bash scripting

My rst script
#!/bin/sh
echo “hello world”
– Saveit calling hello
– Sh hello
– ./hello
chmod +x
hello
– Execute: ./hello
#!/bin/sh
# note: the followed by hashtag is
comment pwd
ls

#!/bin/sh
# name is a
variable
name="fred”
echo "The name is $name"
• Write a script to input your name and
display it again

#!/bin/sh
echo "Enter your name:
\c " read name
echo "Hello, $name"
Variable Description

$0 The filename of the current script.

$# The number of arguments supplied to script

$* All the arguments are double quoted. If a script receives two arguments, $* is
equivalent to $1 $2.
$? The exit status of the last command executed.

$! The process number of the last background command.


Escape sequence
Boolean Operators
String Operators
#!/bin/sh
echo "File Name: $0”
echo "First Parameter : $1”
echo "Second Parameter :
$2” echo "Quoted Values:
$@” echo "Quoted Values:
$*”
echo "Total Number of Parameters : $#"

-​--​--​-$./test.sh Zara Ali File


$echo $? 0
If Then statement
-​-control statement that allows Shell to
make decisions and execute statements
conditionally

if ​[ expression
]
then
Statement(s) to be executed if expression is
true ​

#!/bin/sh
a=10
b=20
if ​[ $a == $b
] ​then
echo "a is equal to b"

if ​[ $a != $b
] ​then
echo "a is not equal to b”

If Then Else

-​-allows Shell to execute statements in more


controlled way and making decision between two
choices.

if ​[ expression
] ​then
Statement(s) to be executed if expression is true

else Statement(s) to be executed if


expression is not tru

#!/bin/sh
a=10
b=20
if [ $a == $b
] then
echo "a is equal to
b" else
echo "a is not equal to
b” 
If Then Else if

-​-allows Shell to make correct decision out of several


conditions

if ​[ expression 1 ]
then
Statement(s) to be executed if expression 1 is true
elif ​[ expression 2 ]
then
Statement(s) to be executed if expression 2 is
true
elif ​[ expression 3 ]
then
Statement(s) to be executed if expression 3 is true
else
Statement(s) to be executed if no expression is
true

#!/bin/sh
a=10
b=20
if [ $a == $b
] then
echo "a is equal to b"

elif [ $a -gt $b ]
then
echo "a is greater than
b”
elif [ $a --lt $b ]
then
echo "a is less than b”
else
echo "None of the condition met”

Case
case ​statement which handles
Repeated if ..elif conditions, and it does so
more efficiently than repeated if...elif
statements

case ​word in
pattern1) Statement(s) to be executed if pattern1 matches
;;
pattern2) Statement(s) to be executed if pattern2 matches
;;
pattern3) Statement(s) to be executed if pattern3 matches
;;
esac
case
#!/bin/sh
FRUIT="kiwi”
case ​"$FRUIT"
in
"apple") echo "Apple pie is quite tasty."
;;
"banana") echo "I like banana nut bread."
;;
"kiwi") echo "New Zealand is famous for kiwi."
;;
esac
The while Loop
The while loop enables you to execute a set of commands repeatedly
until some condition occurs.

while
command ​do
Statement(s) to be executed if command is
true ​done

#!/bin/sh
a=0
while [ $a ​-lt 10 ]
do
echo $a
a=`expr $a + 1`
done
The for Loop
-​-It repeats a set of commands for every item in

a list. ​for ​var in word1 word2 ... wordN

do
Statement(s) to be executed for every
word. ​done

#!/bin/sh
for var in 0 1 2 3 4 5 6 7
8 9 do
echo $var
done

#!/bin/sh
for FILE in
$HOME/.bash* do
echo
$FILE
done
The until Loop

The while loop is perfect for a situation where you need to execute a set of
commands while some condition is true. Sometimes you need to execute a
set of commands until a condition is true.

until
command ​do
Statement(s) to be executed until command is
true ​done
#!/bin/sh
a=0
until [ ! $a ​-lt 10 ]

do

echo $a
a=`expr $a + 1`
done
Shell Loop Control

• Break and continue


• The ​innite
Loop​ #!/bin/sh
a=10

while [ $a -ge 10 ]
do
echo $a

a=`expr $a + 1`

done
The break statements
The ​break ​statement is used to terminate the execution
of the entire loop

#!/bin/sh
a=0
while [ $a -lt 10 ]
do
echo $a

if [ $a ​-eq 5 ]
then
break

a=`expr $a + 1`
done
The continue statement

#!/bin/sh

NUMS="1 2 3 4 5 6 7"

for NUM in $NUMS


do
Q=`expr $NUM % 2`
if [ $Q ​-eq 0 ]
then

echo "Number is an even


number!!" ​continue

echo "Found odd


number" done
Unix -​- Shell Functions

function_name ()

list of commands

#!/bin/sh

# Dene your function


here Hello () {
echo "Hello World"

} # Invoke your function


Hello
-​--​--​--​--​--​--​-

$./test.sh Hello World

$
Pass Parameters to a Function

#!/bin/sh
# Dene your function
here Hello () {
echo "Hello World $1 $2"

}
# Invoke your
function Hello Zara
Ali
• -​--​--​--​--​--​--​--​--​-
$./test.sh Hello World Zara Ali $
Returning Values from Functions
#!/bin/sh
# Dene your function
here Hello () {
echo "Hello World $1
$2" return 10
}
# Invoke your
function Hello Zara
Ali
# Capture value returned by last
command ret=$?
echo "Return value is $ret"

-​--​--​--​--​--​--​--​--​--​--​-
$./test.sh
Hello World Zara
Ali Return value is
10 $

You might also like