Monday 9 July 2012

all extra shell script



                Script-5

    Write a shell script to find whether a given year(4 digits)is leap year or not.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter the year in 4 digits: "
read num
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

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter the year in 4 digits:
2000
The year 2000 is a Leap year

===========================================================
                Script-6
 
        Write a shell script to find the sum of the first n numbers.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter a number: "
read num

i=1
sum=0

while [ $i -le $num ]
do
sum=`expr $sum + $i`
i=`expr $i + 1`
done
echo "The sum of first $num numbers is: $sum"
--------------------------------------------------------------------------------------------------------------
Enter a number:
5
The sum of first 5 numbers is: 15
===========================================================
                Script-7

        Write a shell script to check whether a given number is prime or not.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter a number: "
read num
i=2
f=0
while [ $i -le `expr $num / 2` ]
do
if [ `expr $num % $i` -eq 0 ]
then
f=1
fi
i=`expr $i + 1`
done
if [ $f -eq 1 ]
then
echo "The number is composite"
else
echo "The number is Prime"
fi

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter a number:
5
The number is Prime
===========================================================
                Script-8

    Write a shell script to check whether a given number is an Armstrong
              number or not.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter a number: "
read c

x=$c
sum=0
r=0
n=0
while [ $x -gt 0 ]
do
r=`expr $x % 10`
n=`expr $r \* $r \* $r`
sum=`expr $sum + $n`
x=`expr $x / 10`
done

if [ $sum -eq $c ]
then
echo "It is an Armstrong Number."
else
echo "It is not an Armstrong Number."
fi

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter a number:
153
It is an Armstrong Number.

===========================================================
                Script-9

            Write a pro. to make a table for a given no.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
i=0
sum=0
echo -e "Please enter the number that you want Table:\c"
read a


for i in 1 2 3 4 5 6 7 8 9 10
        do
                echo -e "$a * $i =`expr $a \* $i`"
        done

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Please enter the number that you want Table:10
10 * 1 =10
10 * 2 =20
10 * 3 =30
10 * 4 =40
10 * 5 =50
10 * 6 =60
10 * 7 =70
10 * 8 =80
10 * 9 =90
10 * 10 =100

===========================================================
                Script-10:
        Write a sccript to find a factorial of a given no.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
fact=1
ie=1

echo -e "Enter a number:\c"
read a

while [ $ie -le $a ]
do
        fact=`expr $fact \* $ie`
        ie=`expr $ie + 1`
done
echo -e "Multilpication of $a number is $fact."

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter a number:10
Multilpication of 10 number is 3628800.

===========================================================
                Script-11

    Write a shell script to find a sum of given no and to check out to see if it is even
              or odd.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter a number: "
read n

sum=0
x=$n
r=0

while [ $x -gt 0 ]
do
r=`expr $x % 10`
sum=`expr $sum + $r`
x=`expr $x / 10`
done

if [ `expr $sum % 2` -eq 0 ]
then
echo "The sum of $n is $sum and it is even"
else
echo "The sum of $n is $sum and it is odd"
fi

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter a number:11
The sum of 11 is 2 and it is odd

===========================================================
                Script-12

    Write a shell script to stimulate a calculator that does the addition, subtraction,
            multiplication and division between two numbers. The user should be prompted for
    two operands and operator.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ans='Y'
while [ $ans = 'Y' -o $ans = 'y' ]
do
echo "Enter operand1: "
read op1
echo "Enter operand2: "
read op2
echo "Enter operation: "
echo "+ for addition"
echo "- for subtraction"
echo "* for multiplication"
echo "/ for division"
echo "Enter your choice: "
read op

case $op in
"*")sum=`expr $op1 \* op2`
    echo "Product is $sum";;
"+")sum=`expr $op1 + op2`
    echo "Sum is $sum";;
"-")sum=`expr $op1 - $op2`
    echo "Difference is $sum";;
"/")sum=`expr $op1 / $op2`
    echo "Quotient is $sum";;
*)echo "Invalid Entry"
esac
echo "Do you wish to continue:(Y/N):"
read ans
done
--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter operand1:
8
Enter operand2:
4
Enter operation:
+ for addition
- for subtraction
* for multiplication
/ for division
Enter your choice:
/
Quotient is 2
Do you wish to continue:(Y/N):
n
===========================================================
                Script-13.

        Write a shell script to display and evaluate following series up to n.
            1-4+27-16+125-36+-------

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter a number: "
read n
i=1
val=0
cal=0
while [ $i -le $n ]
do
if [ `expr $i % 2` -ne 0 ]
then
val=`expr $i \* $i \* $i`
cal=`expr $cal + $val`
echo -e "+$val \c"
else
val=`expr $i \* $i`
cal=`expr $cal - $val`
echo -e "-$val \c"
fi
i=`expr $i + 1`
done
echo -e "\nSum is $cal"

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter a number:10
+1 -4 +27 -16 +125 -36 +343 -64 +729 -100
Sum is 1005

===========================================================
                Script-14.

            Display series: 0,1,1,2,3,5,8.......

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter a number: "
read num
sum=0
a=0
b=1
echo "Series is:"
while [ $sum -le $num ]
do
a=$b
b=$sum
sum=`expr $a + $b`
echo -e "$b \c"
done
echo -e "\n"

--------------------------------------------------------------------------------------------------------------
Enter a number:10
Series is:
0 1 1 2 3 5 8

===========================================================
                Script:15.

            Display series:1+4+27+256...

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter a number: "
read num
val=1
i=1
j=1
echo "The Series is: "
while [ $i -le $num ]
do
        while [ $j -le $i ]
        do
        val=`expr $val \* $i`
        j=`expr $j + 1`
        done
        if [ $i -eq 1 ]
        then
        echo -e "$val \c"
        else
        echo -e "+$val \c"
        fi
        j=1
        val=1
        i=`expr $i + 1`
done
echo -e "\n"

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter a number: 5
The Series is: 1 +4 +27 +256 +3125

===========================================================
                Script:16.

        Find out the sum of the following series up to a given no.
                        1+4+9+....N.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter a number: "
read num
i=1
val=0
sum=0
echo -e "The Sum of \c"
while [ $i -le $num ]
do
val=`expr $i \* $i`
if [ $i -eq 1 ]
then
echo -e "$val \c"
else
echo -e "+$val \c"
fi
sum=`expr $sum + $val`
i=`expr $i + 1`
done
echo -e "= $sum\n"

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter a number: 5
The Sum of 1 +4 +9 +16 +25 = 55

===========================================================
                Script:17.

            Write a shell script to find the sum of a given numbers.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
if [ $# -lt 1 ]
then
echo "Invalid Argument"
else
j=0
sum=0
echo -e "The sum of \c"
for i in $*
do
if [ $j -ne -1 ]
then
echo -e "$i, \c"
sum=`expr $sum + $i`
fi
j=`expr $j + 1`
done
echo -e "= $sum \n"
fi

--------------------------------------------------------------------------------------------------------------
                OUTPUT
The sum of 1, 2, 3, = 6

===========================================================
                Script:18.

            Display series:1-2+6-24+....

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter a number: "
read num

i=1
x=0
while [ $i -le $num ]
do
        j=1
        x=1
        while [ $j -le $i ]
        do
        x=`expr $x \* $j`
        j=`expr $j + 1`
        done

        if [ $i -eq 1 ]
        then
        echo -e "$x \c"
        elif [ `expr $i % 2` -eq 0 ]
        then
        echo -e "-$x \c"
        elif [ `expr $i % 2` -ne 0 ]
        then
        echo -e "+$x \c"
        fi
        i=`expr $i + 1`
done
echo -e "\n"

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter a number:5
1 -2 +6 -24 +120

===========================================================
                Script:19.

        Find Basic Salary,Hra,DA, And Calculate the Net Salary.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter Basic Salary: "
read b

hra=0
da=0
if [ $b -gt 1500 ]
then
hra=500
da=`expr $b \* 98 / 100`
else
hra=`expr $b \* 10 / 100`
da=`expr $b \* 90 / 100`
fi
gs=`expr $b + $hra + $da`

echo "Gross Salary is: Rs.$gs"
echo "Details:"
echo "Basic: Rs.$b"
echo "HRA: Rs.$hra"
echo "DA: Rs.$da"

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter Basic Salary:
15000
Gross Salary is: Rs.30200
Details:
Basic: Rs.15000
HRA: Rs.500
DA: Rs.14700
===========================================================
                Script:20.

    Write a shell script that takes two number s through keyboard and finds the value od one number raised to the power of another.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter a number: "
read a

echo "Enter Power: "
read p

i=1
ans=1
while [ $i -le $p ]
do
ans=`expr $ans \* $a`
i=`expr $i + 1`
done
echo "Answer of $a^$p is $ans"

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter a number: 10
Enter Power: 3
Answer of 10^3 is 1000

===========================================================

                Script - 21
            Write a shell to generate the following patterns.
                *
                * *
                * * *
                * * * *
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter the number of Rows:"
read r
i=1
j=1
while [ $i -le $r ]
do
        j=1
        while [ $j -le $i ]
        do
        echo -e "* \c"
        j=`expr $j + 1`
        done
        echo -e "\n"
        i=`expr $i + 1`
done


--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter the number of Rows:
5
*

* *

* * *

* * * *

* * * * *

===========================================================
                Script 22

            Display Following:
                                        1
                              2  2
                              3  3  3
                              4    4    4

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter number of rows: "
read r
echo "Enter number of columns: "
read c

i=1
j=1
while [ $i -le $r ]
do
        j=$c
        while [ $j -ge $i ]
        do
        echo -e " \c"
        j=`expr $j - 1`
        done

        j=1

        while [ $j -le $i ]
        do
        echo -e " $i\c"
        j=`expr $j + 1`
        done
        echo -e "\n"
        i=`expr $i + 1`
done

--------------------------------------------------------------------------------------------------------------
                OUTPUT

Enter number of rows:
4
Enter number of columns:
5
      1

      2 2

      3 3 3

      4 4 4 4
===========================================================
                Script-23:
                Display Following:
                    |_
                    ||_
                    |||_
                    ||||_

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter Number of Rows: "
read row

i=1

while [ $i -le $row ]
do
        j=1
        while [ $j -le $i ]
        do
        echo -e "| \c"
        j=`expr $j + 1`
        done
        echo -e "_ \n"
        i=`expr $i + 1`
done

--------------------------------------------------------------------------------------------------------------
            OUTPUT
Enter Number of Rows:
4
| _

| | _

| | | _

| | | | _

===========================================================
                Script-24
                Display Following:
                *
                **
                ***
                **
                *
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter Number of rows: "
read row

i=1
while [ $i -le $row ]
do
        j=1
        while [ $j -le $i ]
        do
        echo -e "* \c"
        j=`expr $j + 1`
        done
        echo -e "\n"
        i=`expr $i + 1`
done
i=`expr $row - 1`
while [ $i -ge 1 ]
do
        j=1
        while [ $j -le $i ]
        do
        echo -e "* \c"
        j=`expr $j + 1`
        done
        echo -e "\n"
        i=`expr $i - 1`
done

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter Number of rows:3
*

* *

* * *

* *

*

===========================================================
                Script25

            Display Following:
                1
                12
                123
                1234

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter number of Rows: "
read row

i=1
while [ $i -le $row ]
do
        j=1
        while [ $j -le $i ]
        do
        echo -e "$j \c"
        j=`expr $j + 1`
        done
        echo -e "\n"
        i=`expr $i + 1`
done


--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter number of Rows:
5

1

1 2

1 2 3

1 2 3 4

1 2 3 4 5

===========================================================
                    SCRIPT-26

                Display Following:
                            *
                  *              *
            *              *              *
                *              *              *              *
            *              *              *
                    *              *
                            *

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
echo "Enter Number of Rows: "
read row

i=1
while [ $i -le $row ]
do
        j=$row
        while [ $j -gt $i ]
        do
        echo -e " \c"
        j=`expr $j - 1`
        done
        j=1
        while [ $j -le $i ]
        do
        echo -e " *\c"
        j=`expr $j + 1`
        done
        echo -e "\n"
        i=`expr $i + 1`
done
i=`expr $row - 1`
while [ $i -ge 1 ]
do
        j=$row
        while [ $j -gt $i ]
        do
        echo -e " \c"
        j=`expr $j - 1`
        done
        j=$i
        while [ $j -ge 1 ]
        do
        echo -e " *\c"
        j=`expr $j - 1`
        done
        echo -e "\n"
        i=`expr $i - 1`
done

--------------------------------------------------------------------------------------------------------------
                OUTPUT
Enter Number of Rows:5
    *

    * *

  * * *

  * * * *

* * * * *

  * * * *

  * * *

    * *

    *

===========================================================


                                  Practical List-03

                Script-1:
      Write a shell script to read a string through keyboard and check whether it is
      palindrome or not.
*************************************************************************************************
echo "Enter a string: "
read s

len=`echo $s | wc -c`
while [ $len -gt 0 ]
do
        st=`echo $s | cut -c $len`
        str=$str$st
        len=`expr $len - 1`
done
if [ $str = $s ]
then
echo "String Palindrome"
else
echo "string is not palindrome"
fi
*************************************************************************************************
OUTPUT:
    Enter a string:
    madam
    String Palindrome
*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************
                Script-2:
Write a shell script that combine two files in the third file horizontally and vertically.
*************************************************************************************************
echo "Enter Filename1: "
read f1
echo "Enter Filename2: "
read f2

cat $f1 > vfile
cat $f2 >> vfile

paste -d " " $f1 $f2 >> vfile

*************************************************************************************************
OUTPUT:
 
Enter Filename1:
f1
Enter Filename2:
f2

[s92@popeye TW3]$ cat vfile
HI HELLP
HARDIK
Welcome
HI HELLP Welcome
HARDIK
*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-3: Write a shell script that displays all the processes in the systemby every 30 seconds, but five times.

*************************************************************************************************
i=1
while [ $i -le 5 ]
do
ps
sleep 30
i=`expr $i + 1`
done
*************************************************************************************************

OUTPUT:

  PID TTY          TIME CMD
4289 pts/0    00:00:00 bash
4758 pts/0    00:00:00 sh
4759 pts/0    00:00:00 ps
  PID TTY          TIME CMD
4289 pts/0    00:00:00 bash
4758 pts/0    00:00:00 sh
4763 pts/0    00:00:00 ps
  PID TTY          TIME CMD
4289 pts/0    00:00:00 bash
4758 pts/0    00:00:00 sh
4802 pts/0    00:00:00 ps
  PID TTY          TIME CMD
4289 pts/0    00:00:00 bash
4758 pts/0    00:00:00 sh
4806 pts/0    00:00:00 ps
  PID TTY          TIME CMD
4289 pts/0    00:00:00 bash
4758 pts/0    00:00:00 sh
4809 pts/0    00:00:00 ps

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-4 : Write a shell script to remove the zero sized file from the current directory

*************************************************************************************************
for i in `ls`
do
        if [ -s $i ]
        then
                echo "$i - Non-empty file"
        else
                echo "$i - Empty file Deleted"
                rm $i
        fi
done
*************************************************************************************************
OUTPUT:

05 - Non-empty file
20 - Non-empty file
h - Empty file Deleted
a - Empty file Deleted
r - Empty file Deleted

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-5: Write a shell script to change the suffix of all your *.txt files to .dat

*************************************************************************************************

for i in `ls *.txt`
do
        f=`echo $i | cut -d "." -f 1`
        mv $i $f.dat
done

*************************************************************************************************

OUTPUT:

Before->
01  05  09  13  17  21  25  29  33  37    db36  f2          status.dat
02  06  10  14  18  22  26  30  34  38    db37  ff          test
03  07  11  15  19  23  27  31  35  39    db38  file        vfile
04  08  12  16  20  24  28  32  36  a.txt  f1    project.dat  wordfile
                  -------
After->
01  05  09  13  17  21  25  29  33  37    db36  f2          status.dat
02  06  10  14  18  22  26  30  34  38    db37  ff          test
03  07  11  15  19  23  27  31  35  39    db38  file        vfile
04  08  12  16  20  24  28  32  36  a.dat  f1    project.dat  wordfile
                  -------

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-6: Write a shell script that appends the PID of current shell to the filenames of all files having extension txt.

*************************************************************************************************

ps | cut -d " " -f 2 > pfile
l=`cat pfile | wc -l`
l=`expr $l - 1`
x=`cat pfile | tail -$l | head -1 | cut -d " " -f 2`
for i in `ls *.txt`
do
        a=`echo $i | cut -d "." -f 1`
        fn=$x$a
        mv $i $fn.txt
done
rm pfile

*************************************************************************************************

OUTPUT:

Before->
01  05  09  13  17  21  25  29  33  37    db36  f2          status.dat
02  06  10  14  18  22  26  30  34  38    db37  ff          test
03  07  11  15  19  23  27  31  35  39    db38  file        vfile
04  08  12  16  20  24  28  32  36  a.txt  f1    project.dat  wordfile
                  -------
After->
01  05  09  13  17  21  25  29  33  37        db36  f2          status.dat
02  06  10  14  18  22  26  30  34  38        db37  ff          test
03  07  11  15  19  23  27  31  35  39        db38  file        vfile
04  08  12  16  20  24  28  32  36  4289a.txt  f1    project.dat  wordfile
                  ----------
*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-7: Write a shell script to delete all spaces from a given file

*************************************************************************************************
echo "Enter the Filename: "
read fname

cat $fname | tr -d " " > $fname

*************************************************************************************************

OUTPUT:

Enter the Filename:
f1
[s92@popeye TW3]$ cat f1
HARDIK
HARDIK

*************************************************************************************************
*************************************************************************************************
*************************************************************************************************

Script-8: Write a shell Script that displays the user information from /etc/passwd for a given user as follows:
    User Login Name:
    User Id:
    User Gourp Id:
If no argument is passed, display or the current user

*************************************************************************************************

if [ $# -ne 1 ]
then
user=`who am i | tr -s " " | cut -d " " -f 1`
else
user=$1
fi
cat /etc/passwd | grep $user > file
lname=`cat file | cut -d ":" -f 1`
uid=`cat file | cut -d ":" -f 3`
gid=`cat file | cut -d ":" -f 4`
echo "User Login name: $lname"
echo "User Id: $uid"
echo "User Group id: $gid"

*************************************************************************************************

OUTPUT:

User Login name: s92
User Id: 2535
User Group id: 1050

***************************************************************************************************************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-9: Write a shell script that will change the current working directory to given directory.
For example if argument passed is /d1/d2/d3/d4/d5 then at the end of the script, the user should be in the d5 directory.
*************************************************************************************************

x=`echo $1 | tr "/" " "`
for i in `echo $x`
do
        mkdir $i
        cd $i
done

*************************************************************************************************

OUTPUT:

sh 09 /d1/d3
01  06  11  16  21  26  31  36        d1    f2          test
02  07  12  17  22  27  32  37        db36  ff          vfile
03  08  13  18  23  28  33  38        db37  file        wordfile
04  09  14  19  24  29  34  39        db38  project.dat
05  10  15  20  25  30  35  4289a.txt  f1    status.dat

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-10: Write a shell script to find a given date fall on a weekday or a weekend.

*************************************************************************************************

if [ $# -eq 2 ]
then
        x=`cal $2 07 | wc -l`
        x=`expr $x - 1`
        cal $2 07 | tail -$x > file
        cat file | grep -w "$1" > f
        j=0
        for i in `cat f`
        do
                j=`expr $j + 1`
                if [ $i = $1 ]
                then
                        break
                fi
        done
        if [ $j -gt 1 -a $j -lt 7 ]
        then
                echo "Day is Weekday"
        else
                echo "Day is Weekend"
        fi
else
        echo "Invalid arguments"
        echo "Usage: 10 day month"
fi

*************************************************************************************************

OUTPUT:

[s92@popeye TW3]$ sh 10 11 07
Day is Weekday

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-11: Write a shell script to search for a given word in all files given as the arguments on the command line.
On the first occurence of the the word, display the filename and terminate the script.
*************************************************************************************************

if [ $# -lt 1 ]
then
echo "Invalid Argument"
else
echo "Enter a word: "
read word
x=0
for i in `echo $*`
do
        if [ -f $i ]
        then
        x=`cat $i | grep -c "$word"`
        if [ $x -ne 0 ]
        then
        echo "Word found in File : $i"
        break
        fi
        fi
done
fi

*************************************************************************************************

OUTPUT:

[s92@popeye TW3]$ sh 11 f1 f2 file
Enter a word:
Su
Word found in File : file

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-12: Write a shell script that displays the name of the smallest file in the current working directory.
It should display all the information about that file in the following format:
    Filename:
    Owner:
    Size:
    No. of Links:

*************************************************************************************************

x=`ls -Sl | tail -1 | tr -s " "`
fname=`echo $x | cut -d " " -f 9`
owner=`echo $x | cut -d " " -f 3`
size=`echo $x | cut -d " " -f 5`
link=`echo $x | cut -d " " -f 2`
echo "Filename : $fname"
echo "Owner : $owner"
echo "Size : $size"
echo "Link : $link"

*************************************************************************************************

OUTPUT:

Filename : 4289a.txt
Owner : s112
Size : 0
Link : 1

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-13: Write a shell script that displays only specified lines of the given files as follows
      showlines n file -> displays first n lines of file
      showlines n1 n2 file -> displays line numbers then display error
          if no. of arguments are not in the correct number thendisplay error message

*************************************************************************************************

if [ $# -eq 2 ]
then
        cat $2 | head -$1
elif [ $# -eq 3 ]
then
        cat $3 | head -$2 | tail -$1
else
        echo "Invalid Arguments"
fi

*************************************************************************************************

OUTPUT:

[s92@popeye TW3]$ sh 13 2 file
Su Mo Tu We Th Fr Sa
                1  2
[s92@popeye TW3]$ sh 13 2 3 file
                1  2
3  4  5  6  7  8  9

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-14: A file Wordfile contains list of words. Write a shell script to search for those words which are in Wordfile,
 in all the files that are passed as an argument to the program. The name of Wordfile should also be passed as an argument.

*************************************************************************************************
if [ $# -ge 2 ]
then
        c=0
        for i in `echo $*`
        do
                if [ $c -eq 1 ]
                then
                        for j in `cat $1`
                        do
                        x=`cat $i | grep -wc "$j"`
                        if [ $x -eq 1 ]
                        then
                        echo "$j word found in $i"
                        fi
                        done
                fi
                c=1
        done
else
        echo "Usage: 14 wordfile file1 file2 ... file9"
fi


*************************************************************************************************

OUTPUT:

[s92@popeye TW3]$ sh 14 wordfile f1 f2 ff file
unix word found in ff
is word found in ff
unix word found in file
is word found in file

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-15: Write a shell script to display the following menu:
        i.Length of the string
        ii.reverse of the string
        iii.copy one string to another
*************************************************************************************************

echo "Enter a string: "
read str
echo "i. Length of string"
echo "ii.Reverse of the string"
echo "iii. copy one string into another."
echo "Enter your choice: "
read c
case "$c" in
i)x=`echo $str | wc -c`
  x=`expr $x - 1`
  echo "Length is : $x";;
ii)x=`echo $str | wc -c`
  x=`expr $x - 1`
    while [ $x -gt 0 ]
    do
        c=`echo $str | cut -c $x`
        s=$s$c
        x=`expr $x - 1`
    done
    echo "The Reverse of string is : $s";;
iii)s=$str
      echo "The copied string is : $s";;
esac

*************************************************************************************************

OUTPUT:

Enter a string:
life
i. Length of string
ii.Reverse of the string
iii. copy one string into another.
Enter your choice:
ii
The Reverse of string is : efil

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-16: Write a shell script to display the following menu for a particular file:

    i.Display all the words of a file in ascending order.
    ii.Display a file in descending order.
    iii.Display a file in reverse order.
    iv.Toggle all the characters in the file
    v.Display type of the file.
*************************************************************************************************

echo "Enter the Filename: "
read fn
echo "i. Display all the words of a file in ascending order."
echo "ii. Display a file in descending order."
echo "iii. Display a file in reverse order."
echo "iv. Toggle all the characters in the file."
echo "v. Display type of the file."
echo "Enter your choice : "
read c

case $c in
i)for i in `cat $fn`
  do
        echo $i >> ff
  done
  echo "File in ascending order: "
  cat ff | sort
  rm -f ff;;
ii)for i in `cat $fn`
  do
      echo $i >> ff
  done
  echo "File in decending order: "
  cat ff | sort -r
  rm -f ff;;
iii)for i in `cat $fn`
    do
      echo $i >> ff
    done
    x=`cat ff | wc -l`
    echo "Reverse order: "
    while [ $x -gt 0 ]
    do
        s=`cat ff | head -$x | tail -1`
        echo $s
        x=`expr $x - 1`
    done
    rm -f ff;;
iv)x=`cat $fn | wc -l`
  i=1
  while [ $i -le $x ]
  do
        s=`cat $fn | head -$i | tail -1`
        xx=`echo $s | wc -c`
        j=1
        str=""
        while [ $j -le $xx ]
        do
                c=`echo $s | cut -c $j`
                case $c in
                [A-Z])c=`echo $c | tr [A-Z] [a-z]`;;
                [a-z])c=`echo $c | tr [a-z] [A-Z]`;;
                esac
                str=$str$c
                j=`expr $j + 1`
        done
        echo $str >> ff

        i=`expr $i + 1`
  done;;
v)if [ -f $fn ]
  then
        echo "$fn is ordinary file"
  elif [ -d $fn ]
  then
        echo "$fn is Directory file"
  elif [ -x $fn ]
  then
        echo "$fn is Executable file"
  elif [ -r $fn ]
  then
        echo "$fn is Readable file"
  elif [ -w $fn ]
  then echo "$fn is Writable file"
  fi;;
esac

*************************************************************************************************************************************************************

OUTPUT:

Enter the Filename:
file
i. Display all the words of a file in ascending order.
ii. Display a file in descending order.
iii. Display a file in reverse order.
iv. Toggle all the characters in the file.
v. Display type of the file.
Enter your choice :
i
File in ascending order:
asdjlasjdsd;jas
askdjaskljdas
is
thdjasdjlasd
unix

*************************************************************************************************************************************************************


Script-17: Write a shell script to display the following menu for a particular file:
    i.Count the no. of characters,words,lines.
    ii.Count no. of words that has exactly five characters and also display them

*************************************************************************************************

echo "Enter the filename: "
read fname

echo "Select from:  "
echo "i. Count no. of characters , words , lines."
echo "ii. Count the no. of word that has exactly five characters and also display them."
echo "Enter your choice: "
read c
case $c in
i)ch=`cat $fname | wc -c`
  word=`cat $fname | wc -w`
  lines=`cat $fname | wc -l`
  echo "Number of characters are: $ch"
  echo "Number of words are: $word"
  echo "Number of lines are: $lines";;
ii)for i in `cat $fname`
  do
        echo $i >> file
  done
        x=`cat file | grep -w ..... | wc -w`
        echo "Words are: $x  they are as follows: "
        cat file | grep -w .....
  rm -f file
  ;;
*)echo "Invalid choice.";;
esac

*************************************************************************************************
OUTPUT:

Enter the filename:
file
Select from:
i. Count no. of characters , words , lines.
ii. Count the no. of word that has exactly five characters and also display them.
Enter your choice:
i
Number of characters are:      51
Number of words are:      5
Number of lines are:      4

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-18: Write a shell script to accept file and directory as command line arguments and remove that file from the specified directory.

*************************************************************************************************

if [ $# -eq 2 ]
then
        cd
        if [ -d $2 ]
        then
                x=`ls $2 | grep -wic "$1"`
                if [ $x -eq 1 ]
                then
                        rm -f `pwd`/$2/$1
                        echo "File $1 removed"
                else
                        echo "File not found"
                fi
        else
                echo "Argument passed is not a directory"
        fi
else
echo "Invalid option. Usage: 18 file directory"
fi

*************************************************************************************************

OUTPUT:

[s92@popeye TW3]$ sh 18 m 04
Argument passed is not a directory
[s92@popeye TW3]$ sh 18 04 m
File 04 removed

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-19: Write a shell script to get a group name and display all the users who are group member of it.
Also display how many of them are currently active.

*************************************************************************************************

echo "Enter the group name: "
read g
no=`cat /etc/group | grep -w $g | cut -d ":" -f 3`
echo "The users of $g group are : "
cat /etc/passwd | grep -w $no | cut -d ":" -f 1 > file

for i in `cat file`
do
        x=0
        x=`who | grep -c $i`
        if [ $x -eq 0 ]
        then
                echo "$i - not Logged on."
        else
                echo "$i - Logged on."
        fi
done

*************************************************************************************************

OUTPUT:

Enter the group name:
faculty
The users of faculty group are :
hardik - not Logged on.
himali - not Logged on.
nimisha - not Logged on.
jinali - not Logged on.
chintan - not Logged on.
dishant - not Logged on.
dhaval - not Logged on.
parth - not Logged on.
jill - not Logged on.
minti - not Logged on.
nitesh - not Logged on.
kush - not Logged on.
aashil - not Logged on.
nauka - not Logged on.
archit - not Logged on.
kushal - not Logged on.
nidhi - not Logged on.
parth - not Logged on.

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-20: Write a shell script to get all files of home directory and rename them if their names start with c
    Newname=oldname111

*************************************************************************************************

cd
y="111"
c="c"
for i in `ls`
do
        if [ -d $i ]
        then
                x=`echo $i | cut -c 1`
                if [ $x = $c ]
                then
                mv -f $i $i$y
                fi
        fi
done

*************************************************************************************************

OUTPUT:

Previously->
05        add_K      dataentry  finduser  menudriven  t1    usercount
06        b          dirname    g        mul          test  vowel
09        c          display    list      newfile      tw1    while_construct
1        calen      e2        log      pfile        TW1
11        check      empinfo    log2      print        tw-2
*234.txt  cin        loggedin  print123    TW2
a        d          f2.dat    loggein2  printseries  tw3
a+b      d4        file      m        s            TW3
add      data      filemenu  Maildir  sub          *.txt

After->
05        add_K  dataentry  finduser  menudriven  t1    usercount
06        b      dirname    g        mul          test  vowel
09        c      display    list      newfile      tw1    while_construct
1        calen  e2        log      pfile        TW1
11        check  empinfo    log2      print        tw-2
*234.txt  cin111  f          loggedin  print123    TW2
a        d      f2.dat    loggein2  printseries  tw3
a+b      d4      file      m        s            TW3
add      data    filemenu  Maildir  sub          *.txt

*************************************************************************************************
*************************************************************************************************
*************************************************************************************************
*************************************************************************************************

Script-21: Write a shell script to read a string through keyboard and replace that string in the file with new word.

*************************************************************************************************

echo "Enter a string: "
read str
echo "Enter the word to replace with: "
read r
l=`cat file | wc -l`
i=1
sp=" "

while [ $i -le $l ]
do
        s=`cat file | head -$i | tail -1`
        ss=""
        for j in `echo $s`
        do
                if [ $j = $str ]
                then
                        j=`echo $r`
                fi
                ss=$ss$sp$j
        done
        echo $ss >> f
        i=`expr $i + 1`
done
cat f > file
rm -f f

*************************************************************************************************

OUTPUT:

Enter a string:
hardik
Enter the word to replace with:
HARDIK

[s92@popeye TW3]$ cat file
10 11 12 13 14 15 16
HARDIK
himali
nimisha
jinali
chintan
dishant
dhaval
parth
jill
minti
nitesh
kush
aashil
nauka
archit
kushal
nidhi
parth

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-22: Write a shell script that displays the directory information in the following format-
    Filename    Size    Date     Protection    Owner

*************************************************************************************************

x=`ls -l | wc -l`
i=2
echo -e "Filename\t\tSize\tDate\tProtection\tOwner\n"
while [ $i -le $x ]
do
        s=`ls -l | head -$i | tail -1 | tr -s " "`
        fn=`echo $s | cut -d " " -f 9`
        si=`echo $s | cut -d " " -f 5`
        d1=`echo $s | cut -d " " -f 6`
        d2=`echo $s | cut -d " " -f 7`
        p=`echo $s | cut -d " " -f 1`
        o=`echo $s | cut -d " " -f 3`
        echo -e "$fn\t\t\t$si\t$d1 $d2\t$p\t$o"
        i=`expr $i + 1`
done

*************************************************************************************************

OUTPUT:

Filename                Size    Date    Protection      Owner

01                      2      Feb 7  -rw-r--r--      s112
02                      131    Feb 6  -rw-r--r--      s112
03                      0      Feb 7  -rw-r--r--      s112
04                      128    Jan 4  -rw-r--r--      s112
05                      73      Jan 11  -rw-r--r--      s112
06                      213    Jan 11  -rw-r--r--      s112
07                      72      Feb 6  -rw-r--r--      s112
08                      299    Jan 18  -rw-r--r--      s112
09                      70      Jan 11  -rw-r--r--      s112
10                      363    Feb 5  -rw-r--r--      s112
11                      238    Feb 6  -rw-r--r--      s112
12                      254    Jan 18  -rw-r--r--      s112
13                      129    Feb 6  -rw-r--r--      s112
14                      278    Feb 5  -rw-r--r--      s112
15                      488    Jan 25  -rw-r--r--      s112
16                      1429    Feb 6  -rw-r--r--      s112
17                      665    Jan 27  -rw-r--r--      s112
18                      475    Feb 6  -rw-r--r--      s112
19                      323    Jan 29  -rw-r--r--      s112
20                      133    Feb 5  -rw-r--r--      s112

*************************************************************************************************
Script-23: Write a shell script to display the following menu:
    i.  Change the system prompt to username + current date
    ii.  No. of ordinary file in the current directory
    iii. No. of files which are not accessible by others or group
    iv.  Display five largest file in the current directory
    v.  Display all the hidden files in the current directory

*************************************************************************************************
echo "Enter : "
echo "i.  Change the system prompt to username + current date"
echo "ii.  No. of ordinary file in the current directory"
echo "iii. No. of file which are not accessible by others or group"
echo "iv.  Display five largest file in the current directory"
echo "v.  Display all hidden files in current directory"
echo "Please enter your choice: "
read c
case "$c" in
i)x=`date`
  PS1="$LOGNAME $x";;
ii)k=0
  for i in `ls`
  do
        if [ -f $i ]
        then
        k=`expr $k + 1`
        fi
  done
  echo "Number of ordinary files are: $k";;
iii)x=`ls -l | grep -wc "....\-\-\-\-\-\-"`
    echo "No. of files which are not accessible by others or group are: $x";;
iv) echo "The Five largest files in the current directory."
    ls -Sl | tr -s " " | head -6 | cut -d " " -f 9;;
v) echo "All hidden files in the current directory are: "
    ls -a | tr -s " " | grep -w ^[.] | cut -d " " -f 9;;
*)echo "Invalid option"
esac

*************************************************************************************************

OUTPUT:

Enter :
i.  Change the system prompt to username + current date
ii.  No. of ordinary file in the current directory
iii. No. of file which are not accessible by others or group
iv.  Display five largest file in the current directory
v.  Display all hidden files in current directory
Please enter your choice:
ii
Number of ordinary files are: 51

*************************************************************************************************
*************************************************************************************************
*************************************************************************************************
*************************************************************************************************

Script-24: Write a shell script that takes filenames and comment on their size.
          Display appropriate message as follows:
   
      "File is empty" - if file is empty
      "File is small" - if it contains less than 100 words
      "File is large" - if it contains 100 to 1000 words
      "File is huge"  - if it contains more than 1000 lines

*************************************************************************************************

if [ $# -gt 0 ]
then
        for i in `echo $*`
        do
                w=`cat $i | wc -w`
                s=`ls -l $i | tr -s "" | cut -d " " -f 5`
                l=`cat $i | wc -l`
                if [ $s -eq 0 ]
                then
                        echo "$i - File is empty"
                elif [ $w -gt 0 -a $w -lt 100 ]
                then
                        echo "$i - File is small"
                elif [ $w -ge 100 -a $w -le 1000 ]
                then
                        echo "$i - File is Large"
                else
                        echo "$i - File is Huge"
                fi
        done
else
echo "Invalid argument"
echo "Usage: 24 File1 file2....."
fi

*************************************************************************************************

OUTPUT:

[s92@popeye TW3]$ sh 24
Invalid argument
Usage: 24 File1 file2.....
[s92@popeye TW3]$ sh 24 file
file - File is small

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-25: Write a shell script to display the following at login time:
i.  Calendar of the current month and year.
ii.  Display "Good Morning/Good Afternoon/Good Evening" according to the current login time
iii. User,Users home directory
iv.  Terminal name, Terminal type.
v.  Machine name
vi.  No. of users who are currently logged in; List of users who are currently logged in.

*************************************************************************************************

cal
x=`who am i | tr -s " " | cut -d " " -f 5`
x=`echo $x | cut -d ":" -f 1`
if [ $x -lt 12 ]
then
        echo "Good Morning"
elif [ $x -ge 12 -a $x -lt 17 ]
then
        echo "Good Afternoon"
else
        echo "Good Evening"
fi
echo "Username: $LOGNAME"
echo "HOME directory: $HOME"
tn=`who am i | tr -s " " | cut -d " " -f 6`
echo "Terminal name: $tn"
tn=`who am i | tr -s " " | cut -d " " -f 2`
echo "Machine name: $tn"
n=`who | wc -l`
echo "No. of user logged in : $n they are as follows: "
who | tr -s " " | cut -d " " -f 1

*************************************************************************************************

OUTPUT:

    February 2007
Su Mo Tu We Th Fr Sa
            1  2  3
4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28

Good Morning
Username: s92
HOME directory: /home/sybcas112
Terminal name: (aesics84)
Machine name: pts/7
No. of user logged in :      7 they are as follows:
s81
s92
s72
s66
s106
s62
s84

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-26: write a shell script to display the following menu for a particular file:
    i.  Count the no. of words that are starting with '0' and ending with '*' and also         display them.
    ii. Count the no. of occurences of a particular word.

*************************************************************************************************

echo "Enter the file name: "
read fn
echo "Enter: "
echo "i.  Count the no. of words thar are starting with '0' and ending with '*'
and also display them"
echo "ii. Count the no. of occurences of a particular word."
echo "Enter your choice: "
read c
for i in `cat $fn`
do
echo $i >> f
done
case $c in
i)x=`cat f | grep -wc "0*$"`
  echo "Number of words starting 0 and end with * are: $x"
  cat f | grep -w "0*$";;
ii)echo "Enter the word to count occurences : "
  read s
  x=`cat f | grep -wc $s`
  echo "Number of times the word $s is repeated: $x";;
*) echo "Invalid option"
esac
rm -f f

*************************************************************************************************

OUTPUT:

Enter the file name:
file
Enter:
i.  Count the no. of words thar are starting with '0' and ending with '*' and also display them
ii. Count the no. of occurences of a particular word.
Enter your choice:
ii
Enter the word to count occurences :
HARDIK
Number of times the word HARDIK is repeated: 2

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-27: Write a shell script to display the following:
        i.  Concatenation of two strings.
        ii.  Rename a file
        iii. Delete a file
        iv.  Edits a file

*************************************************************************************************

echo "Enter: "
echo "i.  Concatenation of two strings"
echo "ii.  Rename a file"
echo "iii. Delete a file"
echo "iv.  Edits a file"
echo "Please enter your choice: "
read c
case $c in
i)echo -e "Enter string1: \c"
  read s1
  echo -e "Enter string2: \c"
  read s2
  str=$s1$s2
  echo "Concated string is $str";;
ii)echo "Enter a file: "
  read f
  echo "Enter new name of file: "
  read nf
  mv -f $f $nf;;
iii)echo "Enter a file: "
    read f
  rm -f $f;;
iv)echo "Enter a file: "
  read f
  vi $f;;
*)echo "Invalid Option"
esac

*************************************************************************************************

OUTPUT:

Enter:
i.  Concatenation of two strings
ii.  Rename a file
iii. Delete a file
iv.  Edits a file
Please enter your choice:
i
Enter string1: jack
Enter string2: back
Concated string is jackback

*************************************************************************************************
**************************************************************************************************************************************************************************************************
*************************************************************************************************

Script-28: Write a shell script to accept 2 filenames and check i both exist then append the contents of the second file into the first file.

*************************************************************************************************

echo -e "Enter filename1: \c"
read f1
echo -e "Enter filename2: \c"
read f2
if [ -s $f1 -a -s $f2 ]
then
        cat $f2 >> $f1
else
echo "Cannot append"
fi

*************************************************************************************************

OUTPUT:

Enter filename1: f1
Enter filename2: f2
[s92@popeye TW3]$ cat f1
HIHELLP
ASDSAD
Welcome

***************************************************************************************************************************************************************************************************************
Script-29: write a shell script to get user name through keyboard. If that user exists then display all information of that user.
 Also check whether that user is active or not.
***************************************************************************************************************************************************************************************************************

echo -e "Enter the username: "
read user
x=`cat /etc/passwd | grep -iw $user`
s=`cat /etc/passwd | grep -wic $user`
if [ $s -eq 1 ]
then
        u=`echo $x | cut -d ":" -f 1`
        gn=`echo $x | cut -d ":" -f 4`
        h=`echo $x | cut -d ":" -f 6`
        g=`cat /etc/group | grep -w $gn | cut -d ":" -f 1`
        echo "USER INFO: "
        echo "Username: $u"
        echo "Group no: $gn"
        echo "Group Name: $g"
        echo "Home directory: $h"
        a=`who | grep -wc $u`
        if [ $a -eq 1 ]
        then
                echo "Currently Logged On"
        else
                echo "Not logged on"
        fi
else
echo "User doesn't exist"
fi

*************************************************************************************************************************************************************
OUTPUT:

Enter the username:
hardik
USER INFO:
Username: hardik
Group no: 502
Group Name: student
Home directory: /home/hardik
Not logged on

***********************************************************************************************************************************************************************
Script-30: Write a shell script to test whether a user is available or not if yes then display its home directory and group name.

*************************************************************************************************************************************************************

echo "Enter the username: "
read user
x=`who | grep -wic "$user"`
if [ $x -eq 1 ]
then
        s=`cat /etc/passwd | grep -wi $user`
        u=`echo $s | cut -d ":" -f 1`
        gn=`echo $s | cut -d ":" -f 4`
        g=`cat /etc/group | grep -w $gn | cut -d ":" -f 1`
        h=`echo $s | cut -d ":" -f 6`
        echo "User is available Info as follows: "
        echo Username: $u
        echo "Group No.: $gn"
        echo "Group Name: $g"
        echo "Home directory: $h"
else
        echo "$user is Unavailable"
fi

***********************************************************************************************************************************************************************

OUTPUT:

Enter the username:
s42
User is available Info as follows:
Username: s92
Group No.: 1050
Group Name: sybca
Home directory: /home/sybcas92

***********************************************************************************************************************************************************************

Script-32: Write a shell script to display the following menu:
      i.  change the system prompt to the current directory
      ii.  No. of executable files in the current directory
      iii. Display the last modified file in the current directory
      iv.  Display all subdirectories in current directory
      v.  Display the attributes of the current directory

*************************************************************************************************************************************************************

echo "Enter : "
echo "i.    Change the system prompt to the current directory"
echo "ii.  No. of executable files in the directory"
echo "iii.  Display last modified file in the current directory"
echo "iv.  Display all subdirectories in current directory"
echo "v.    Display all attributes of the current directory"
echo "Please enter your choice: "
read c
case "$c" in
i)PS1=`pwd`;;
ii)c=0
  for i in `ls`
  do
        if [ -x $i ]
        then
                c=`expr $c + 1`
        fi
  done
  echo "No. of executable files are: $c";;
iii)x=`ls -lt | tr -s " " | head -2 | cut -d " " -f 9`
    echo -e "The last modified file in the current directory is : $x\c";;
iv)echo -e "All subdirectories in current directory are: \n"
  for i in `ls`
  do
        if [ -d $i ]
        then
                echo "$i"
        fi
  done;;
v)x=`ls -al | grep -w ".$" | head -1 |tr -s " " | cut -d " " -f 1`
  echo "Attributes of current directory are: $x";;
*)echo "Invalid Option"
esac
********************
***********************************************************************************************************************************************************************

OUTPUT:

Enter :
i.    Change the system prompt to the current directory
ii.  No. of executable files in the directory
iii.  Display last modified file in the current directory
iv.  Display all subdirectories in current directory
v.    Display all attributes of the current directory
Please enter your choice:
v
Attributes of current directory are: drwxr-xr-x

*************************************************************************************************************************************************************
Script-33: Write a shell script that
        i.  changes text to uppercase
        ii. Find the reverse of the given number.

***********************************************************************************************************************************************************************

echo "Enter : "
echo "i.  Change text to uppercase"
echo "ii. Find reverse of given number"
echo "Enter your choice : "
read c
case $c in
i)echo -e "Enter a string: "
  read s
  s=`echo $s | tr [a-z] [A-Z]`
  echo "Converted to uppercase: $s";;
ii)echo -e "Enter number: \c"
  read n
  m=$n
  while [ $n -ne 0 ]
  do
        r=`expr $n % 10`
        f=`expr $f \* 10`
        f=`expr $f + $r`
        n=`expr $n / 10`
  done
  echo "Reverse of $m is $f";;
*)echo "Invalid option"
esac

***********************************************************************************************************************************************************************

OUTPUT:

Enter :
i.  Change text to uppercase
ii. Find reverse of given number
Enter your choice :
i
Enter a string:
hardIk
Converted to uppercase: HARDIK

*************************************************************************************************************************************************************
Script-34: Write a shell script to display the calender in the following manner:
 
    i.  Display the calendar of months m1 and m2 by `cal m1,m2` command file
    ii.  Display the calendar of the months from m1 to m2 by `Cal m1-m2` command file.

*******************************************************************************************************************************************************************************************

if [ $# -eq 1 ]
then
        y="-"
        z=","
        l=`echo $1 | wc -c`
        i=1
        c=0
        while [ $i -le $l ]
        do
                x=`echo $1 | cut -c $i`
                if [ $x = $y ]
                then
                        c=1
                        break
                elif [ $x = $z ]
                then
                        c=2
                        break
                fi
                i=`expr $i + 1`
        done
        if [ $c -eq 1 ]
        then
                first=`echo $1 | cut -d "-" -f 1`
                second=`echo $1 | cut -d "-" -f 2`
                while [ $first -le $second ]
                do
                        cal $first 07
                        first=`expr $first + 1`
                done
        elif [ $c -eq 2 ]
        then
                first=`echo $1 | cut -d "," -f 1`
                second=`echo $1 | cut -d "," -f 2`
                cal $first 07
                cal $second 07
        else
                echo "Argument not entered correctly"
        fi

else
  echo "Invalid argument Usage: 34 m1,m2 or 34 m1-m2"
fi

*************************************************************************************************************************************************************************************************************************

OUTPUT:

[s92@popeye TW3]$ sh 34 5,7
        May 7
Su Mo Tu We Th Fr Sa
1  2  3  4  5  6  7
8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

      July 7
Su Mo Tu We Th Fr Sa
                1  2
3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
[s92@popeye TW3]$ sh 34 6-7
      June 7
Su Mo Tu We Th Fr Sa
          1  2  3  4
5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

      July 7
Su Mo Tu We Th Fr Sa
                1  2
3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

***********************************************************************************************************************************************************************************************************************************

Script-35: Write a shell script to display the following menu:
    i.  Display names of all the user currently logged in
    ii.  Display the names of members of a particular user group
    iii. Display names of all users who are in the system
    iv.  Exit

***********************************************************************************************************************************************************************

echo "Enter : "
echo "i.  Display names of all the users currently logged in"
echo "ii.  Display the names of the members of a particular group"
echo "iii. Display the names of all the who are in the system"
echo "iv.  Exit"
echo "Please enter your choice: "
read c
case $c in
i)echo "Users currently logged in are: "
  who | tr -s " " | cut -d " " -f 1;;
ii)echo "Enter the name of the group: "
  read g
  x=`cat /etc/group | grep -wic "$g"`
  if [ $x -eq 1 ]
  then
        gn=`cat /etc/group | grep -wi "$g" | cut -d ":" -f 3`
        echo "Members of the group $g are: "
        cat /etc/passwd | grep -w $gn | cut -d ":" -f 1
  else
        echo "Group doesn't exist"
  fi;;
iii)echo "All Users who are in the system are: "
    cat /etc/passwd | cut -d ":" -f 1;;
iv)exit;;
*)echo "Invalid Option"
esac

***********************************************************************************************************************************************************************************************************************************

OUTPUT:

Enter :
i.  Display names of all the users currently logged in
ii.  Display the names of the members of a particular group
iii. Display the names of all the who are in the system
iv.  Exit
Please enter your choice:
ii
Enter the name of the group:
student
Members of the group faculty are:
HARDIK
himali
nimisha
jinali
chintan
dishant
dhaval
parth
jill
minti
nitesh
kush
aashil
nauka
archit
kushal
nidhi
parth
*************************************************************************************************************************************************************

Script-36: Create file which contains information about items in following manner.
        Itemname | item code | item price
    Write a shell script which allows you to purchse any item from item list and generates
    a printout of a bill.

***********************************************************************************************************************************************************************

echo -e "Enter the item to purchase: \c"
read item
x=`cat db36 | grep -wi "$item"`
i=`echo $x | cut -d "|" -f 1`
p=`echo $x | cut -d "|" -f 3`
code=`echo $x | cut -d "|" -f 2`
echo "BILL:"
echo "Item Name: $i"
echo "Item Code: $code"
echo "Price: $p"

*************************************************************************************************************************************************************

OUTPUT:

Enter the item to purchase: Pen
BILL:
Item Name: 001
Item Code: Pen
Price: 5

*************************************************************************************************************************************************************
Script-37: Create a file which contains information about employees.
      The sample record is
        Iyer|chandra|2007|35 cement road, nagpur|5000
      Write a shell script with three functionality
        i.  To add new employee in the file
        ii.  To get information of any employee
        iii. to display all employees whose basic pay is between 1000 to 3999

*************************************************************************************************************************************************************************************************************************

echo "Enter : "
echo "i.  To add new employee in file"
echo "ii.  To get information of any employee by entering name"
echo "iii. To display all employees whose basic pay is between 1000 to 3999"
echo "Enter your choice: "
read c
case $c in
i)echo -e "Enter Surname: \c"
  read sn
  echo -e "Enter Name: \c"
  read n
  echo -e "Enter Year of joining: \c"
  read y
  echo -e "Enter Address: \c"
  read a
  echo -e "Enter Basic: \c"
  read b
  echo "$sn|$n|$y|$a|$b" >> db37;;
ii)echo -e "Enter the name of employee: \c"
  read n
  u=`cat db37 | grep -wi "$n"`
  sn=`echo $u | cut -d "|" -f 1`
  n=`echo $u | cut -d "|" -f 2`
  y=`echo $u | cut -d "|" -f 3`
  a=`echo $u | cut -d "|" -f 4`
  b=`echo $u | cut -d "|" -f 5`
  echo "Name: $n"
  echo "Surname: $sn"
  echo "Year: $y"
  echo "Address: $a"
  echo "Basic: $b";;
iii)x=`cat db37|wc -l`
    i=1
    echo "Employee with 1000 to 3999 basic are: "
    while [ $i -le $x ]
    do
        u=`cat db37 | head -$i | tail -1`
        b=`echo $u | cut -d "|" -f 5`
        if [ $b -ge 1000 -a $b -lt 3999 ]
        then
                c=`echo $u | cut -d "|" -f 2`
                sr=`echo $u | cut -d "|" -f 1`
                echo $sr $c
        fi
        i=`expr $i + 1`
    done;;
*)echo "Invalid option";;
esac

*************************************************************************************************************************************************************

OUTPUT:

Enter :
i.  To add new employee in file
ii.  To get information of any employee by entering name
iii. To display all employees whose basic pay is between 1000 to 3999
Enter your choice:
ii
Enter the name of employee: hardik
Name: hardik
Surname: shah
Year: 2007
Address: 28,Hardi Park Sco,Naranpura
Basic: 5000

**************************************************************************************************************************************************************************************************
Script-38: Write a shell script for simple database management system operation .Database file       contains following fields:
      Empno,emp_name,address_emp,emp_age ,emp_designation,emp_salary.
      Provide a menu driven facility for
 
      i.  View Data
      ii.  View Record
      iii. Add Record
      iv.  Delete Record
      v.  Exit

***********************************************************************************************************************************************************************

echo "Enter : "
echo "i.  View Data: "
echo "ii.  View Record"
echo "iii. Add Record"
echo "iv.  Delete Record"
echo "v.  Exit"
echo "Enter your choice: "
read c
case $c in
i)x=`cat db38 | wc -l`
  i=1
  while [ $i -le $x ]
  do
  s=`cat db38 | head -$i | tail -1`
  n=`echo $s | cut -d "|" -f 1`
  nm=`echo $s | cut -d "|" -f 2`
  a=`echo $s | cut -d "|" -f 3`
  age=`echo $s | cut -d "|" -f 4`
  d=`echo $s | cut -d "|" -f 5`
  sal=`echo $s | cut -d "|" -f 6`
  echo "Emp Code: $n"
  echo "Name: $nm"
  echo "Address: $a"
  echo "Age: $age"
  echo "Designation: $d"
  echo -e "Salary: $sal\n\n"
  i=`expr $i + 1`
  done;;
ii)echo -e "Enter employee name to view: \c"
  read x
  s=`cat db38 | grep -wi "$x"`
  n=`echo $s | cut -d "|" -f 1`
  nm=`echo $s | cut -d "|" -f 2`
  a=`echo $s | cut -d "|" -f 3`
  age=`echo $s | cut -d "|" -f 4`
  d=`echo $s | cut -d "|" -f 5`
  sal=`echo $s | cut -d "|" -f 6`
  echo "Emp Code: $n"
  echo "Name: $nm"
  echo "Address: $a"
  echo "Age: $age"
  echo "Designation: $d"
  echo "Salary: $sal";;
iii)echo -e "Enter Emp no: \c"
  read eno
  echo -e "Enter name: \c"
  read n
  echo -e "Enter Address: \c"
  read a
  echo -e "Enter Age: \c"
  read age
  echo -e "Enter designation: \c"
  read d
  echo -e "Enter salary: \c"
  read sal
  echo "$eno|$n|$a|$age|$d|$sal" >> db38;;
iv)echo -e "Enter the name of the employee to delete: \c"
  read em
  x=`cat db38 | wc -l`
  i=1
  while [ $i -le $x ]
  do
        s=`cat db38 | head -$i | tail -1`
        t=`echo $s | grep -wic "$em"`
        if [ $t -eq 0 ]
        then
                echo "$s" >> file
        fi
        i=`expr $i + 1`
  done
  mv -f file db38;;
v)exit;;
*)echo "Invalid Option";;
esac

*************************************************************************************************************************************************************

OUTPUT:

Enter :
i.  View Data:
ii.  View Record
iii. Add Record
iv.  Delete Record
v.  Exit
Enter your choice:
i
Emp Code: 001
Name: ABC
Address: Ahmedabad
Age: 23
Designation: Manager
Salary: 10000


Emp Code: 002
Name: XYZ
Address: Jamnagar
Age: 45
Designation: Asst.Manager
Salary: 8000


Emp Code: 003
Name: GHJ
Address: Bhuj
Age: 28
Designation: Clear
Salary: 5000


**************************************************************************************************************************************************************************************************

Script-39: Write a shell script to accept employee name from the user and display an appropriate            message. Assume that an employee is working on a sinle project. Employee project       details are stored in a file project.dat. The details of the work done on the assigned
      Project by the employee are in a file status.dat
      The structure:
 
      Project.cat                Status.dat
      -----------                   ------------
      Emp code                Empcode
      Empname                Project code
      Project code                    Daysworked
      Duration 

      If the duration of the project is the same as the number of days worked on the       project, then display the message <Empname>. Today is the last day to finish the
      project and if the number of days are <= 30, then display the message<Empname>,Hurry!
      Only <days> are remaining to finish your project. If the number of days is >30 then                 display the message <Empname>, schedule yourself. You still have <days> to finis your       work.

*************************************************************************************************************************************************************************

echo -e "Enter the Employee's Name: \c"
read name
x=`cat project.dat | grep -c -i "$name"`
if [ $x -eq 1 ]
then
        d=`cat project.dat | grep -wi "$name" | cut -d "|" -f 4`
        code=`cat project.dat | grep -wi "$name" | cut -d "|" -f 1`
        w=`cat status.dat | grep -wi "$code" | cut -d "|" -f 3`
        c=`expr $d - $w`
        if [ $c -eq 0 ]
        then
        echo "$name,Today is the last day to finish the project"
        elif [ $c -le 30 ]
        then
        echo "$name, Hurry! Only $c days are remaining to finish your project"
        else
    echo "$name,Schedule yourself, You still have $c days to finish your work"
        fi
else
        echo "Employee not found"
fi

*************************************************************************************************************************************************************
OUTPUT:

Enter the Employee's Name: hardik
hardik,Today is the last day to finish the project

0 comments:

Post a Comment