Shell Introduction

• Study of Shell, Types of Shell, Variables and Operators
• Write a shell script to perform arithmetic operations
• Write a shell script to calculate simple interest
• Write a shell script to determine largest among three integer numbers
• Write a shell script to determine a given year is leap year or not
• Write a shell script to print multiplication table of given number using while statement
• Write a shell script to search whether element is present is in the list or not
• Write a shell script to compare two strings
• Write a shell script to read and check if the directory / file exists or not, if not make the directory / file
• Write a shell script to implement menu-driven calculator using case statement.
• Write a shell script to print following pattern:

*

* *

* * * *

* * * * *

# 1. Shell Script to perform Arithmatic Operations using expr

``````#!/bin/sh

a=10
b=20

val=`expr \$a + \$b`
echo "a + b : \$val"

val=`expr \$a - \$b`
echo "a - b : \$val"

val=`expr \$a \* \$b`
echo "a * b : \$val"

val=`expr \$b / \$a`
echo "b / a : \$val"

val=`expr \$b % \$a`
echo "b % a : \$val"

if [ \$a == \$b ]
then
echo "a is equal to b"
fi

if [ \$a != \$b ]
then
echo "a is not equal to b"
fi
``````

# 2. Shell Script to perform Arithmatic Operations using Double Parenthesis

``````#!/bin/bash

x=10
y=3

echo \$(( x + y ))   # addition
echo \$(( \$x + \$y )) # also valid

echo \$(( x - y ))   # subtraction
echo \$(( \$x - \$y )) # also valid

echo \$(( x * y ))   # multiplication
echo \$(( \$x * \$y )) # also valid

echo \$(( x / y ))   # division
echo \$(( \$x / \$y )) # also valid

echo \$(( x ** y ))  # exponentiation
echo \$(( \$x ** \$y ))    # also valid

echo \$(( x % y ))   # modular division
echo \$(( \$x % \$y )) # also valid

(( x += 4 ))    # increment variable by constant
echo \$x

(( x -= 4 ))    # decrement variable by constant
echo \$x

(( x *= 4 ))    # mulitply variable by constant
echo \$x

(( x /= 4 ))    # divide variable by constant
echo \$x

(( x %= 4 ))    # Remainder of Dividing Variable by Constant
echo \$x
``````

# 3. Shell Script to perform Arithmatic Operations using let

``````#!/bin/bash

x=10
y=3
z=0

let "z = \$(( x + y ))"  # addition
let z=\$((x+y))  # also valid without double quotes when no spaces in expression
echo \$z

let "z = \$(( x - y ))"  # subtraction
let z=\$((x-y))
echo \$z

let "z = \$(( x * y ))"  # multiplication
let z=\$((x*y))
echo \$z

let "z = \$(( x / y ))"  # division
let z=\$((x/y))
echo \$z

let "z = \$(( x ** y ))" # exponentiation
let z=\$((x**y))
echo \$z

let "z = \$(( x % y ))"  # modular division
let z=\$((x%y))
echo \$z

let "x += 4"    # increment variable by constant
echo \$x

let "x -= 4"    # decrement variable by constant
echo \$x

let "x *= 4"    # mulitply variable by constant
echo \$x

let "x /= 4"    # divide variable by constant
echo \$x

let "x %= 4"    # Remainder of Dividing Variable by Constant
echo \$x
``````

# 4. Write a shell script to calculate simple interest

``````echo " Enter the principle value: "
echo " Enter the rate of interest:"
echo " Enter the time period:"
s=`expr \$p \* \$t \* \$r / 100`
echo " The simple interest is "
echo \$s
``````

# 5. Write a shell script to determine largest among three integer numbers

``````echo "Enter the 1st Number: "
echo "Enter the 2nd Number: "
echo "Enter the 3rd Number: "

total=`expr \$n1 + \$n2 + \$n3`
avg=`expr \$total / 3`

if [ \$n1 -gt \$n2 -a \$n1 -gt \$n3 ]
then
echo "\$n1 is the Largest of three"
elif [ \$n2 -gt \$n1 -a \$n2 -gt \$n3 ]
then
echo "\$n2 is the Largest of three"
elif [ \$n3 -gt \$n1 -a \$n3 -gt \$n2 ]
then
echo "\$n3 is the Largest of three"
else
echo "All the three numbers are Equal"
fi
echo "Total: \$total"
echo "Average: \$avg"
``````

# 6. Write a shell script to determine a given year is leap year or not

``````echo "Enter the year in 4 digits: "
if [ \$num -ge 1000 -a \$num -le 9999 ]
then
if [ `expr \$num % 4` -eq 0 ]
then
echo "The year \$num is a Leap year"
else
echo "The year \$num is not a Leap year"
fi
else
echo "Invalid year format"
fi
``````

# 7. Write a shell script to print multiplication table of given number using while statement

Usng Expr clear echo "which number to generate multiplication table" read number i=1 while [ \$i -le 10 ] do echo " \$number * \$i =`expr \$number \* \$i` " i=`expr \$i + 1` done

Using double parentheses

echo "Enter a Number" read n i=1

while [ \$i -le 10 ] do echo " \$n x \$i = \$(( n * i ))" i=\$(( i + 1 )) done

# Write a shell script to implement menu-driven calculator using case statement.

# !/bin/bash # Take user Input echo "Enter Two numbers : " read a read b

# Input type of operation echo "Enter Choice :" echo "1. Addition" echo "2. Subtraction" echo "3. Multiplication" echo "4. Division" read ch

# Switch Case to perform # calculator operations case \$ch in 1)res=`echo \$a + \$b | bc` ;; 2)res=`echo \$a - \$b | bc` ;; 3)res=`echo \$a \* \$b | bc` ;; 4)res=`echo "scale=2; \$a / \$b" | bc` ;; esac echo "Result : \$res"

# 10. Shell Script to print half pyramid using *

``````rows=4
for((i=1; i<=rows; i++))
do
for((j=1; j<=i; j++))
do
echo -n "* "
done
echo
done
``````

# 11.

``````#! /bin/bash -
if [[ ! -e /Scripts/file.txt ]]; then
mkdir -p /Scripts
touch /Scripts/file.txt
fi

if [ -f /etc/resolv.conf -a -f /etc/hosts ]; then
echo "Both files exist."
fi

FILE=/etc/resolv.conf
if [ -f "\$FILE" ]; then
echo "\$FILE exists."
else
echo "\$FILE does not exist."
fi
``````

\$ [[ -d /var/logs ]] && echo "Directory exist" || echo "Directory does not exist" \$ [[ -d /dumper/fake ]] && echo "Directory exist" || echo "Directory does not exist"

# Shell script to compare two strings

## Example 1

``````#!/bin/bash

VAR1="Linuxize"
VAR2="Linuxize"

if [ "\$VAR1" = "\$VAR2" ]; then
echo "Strings are equal."
else
echo "Strings are not equal."
fi
``````

#!/bin/bash

## Example 2

read -p "Enter a string: " str1

if [ \$str1 == "linux" ] then echo "linux" elif [ \$str1 == "unix" ] then echo "unix" else echo "Neither linux nor unix" fi

## Example 3

read -p "Enter first string: " VAR1 read -p "Enter second string: " VAR2

if [[ "\$VAR1" == "\$VAR2" ]]; then echo "Strings are equal." else echo "Strings are not equal." fi