Download pdf - Unix practical file

Transcript
Page 1: Unix practical file

INDEX

S.No Date Topic Sign Remarks

1. Performing Arithmetic Operations

2. Comparison between two numbers

3. Comparison between three numbers

4. Combination of subjects

5. Compound Interest Calculation

6. Counting of numbers

7. Sum of 5 digit numbers

8. Check even /odd

9. Display Fibonacci Series

10. Find out HCF

11. Find out LCM

12. Find out Leap year

13. Perform Exponential Function

14. Check prime number

15. Calculate Simple Interest

16. Swap two numbers without using three variables

17. Display Table of any number

18. Perform concatenation of a string

19. Convert Celsius temperature into Fahrenheit

20. Check whether a number is a palindrome

21. Menu for all of the above coding

Page 2: Unix practical file

UNIX BASICS

1.0 Introduction The purpose of this document is to provide the reader with a fast and simple introduction to using the Linux command shell and some of its basic utilities. It is assumed that the reader has zero or very limited exposure to the Linux command prompt. This document is designed to accompany an instructor-led tutorial on this subject, and therefore some details have been left out. Explanations, practical examples, and references to DOS commands are made, where appropriate.

1.1 What is a command shell? � A program that interprets commands � Allows a user to execute commands by typing them manually at a terminal, or automatically in programs called shell scripts. A shell is not an operating system. It is a way to interface with the operating system and run commands.

1.2 What is BASH? � BASH = BBBBourne AAAAgain SHSHSHSHell

� Bash is a shell written as a free replacement to the standard Bourne Shell (/bin/sh) originally written by Steve Bourne for UNIX systems. It has all of the features of the original Bourne Shell, plus additions that make it easier to program with and use from the command line. Since it is Free Software, it has been adopted as the default shell on most Linux systems.

1.3 How is BASH different from the DOS command prompt? � Case Sensitivity:Case Sensitivity:Case Sensitivity:Case Sensitivity: In Linux/UNIX, commands and filenames are case sensitive, meaning that typing “EXIT” instead of

the proper “exit” is a mistake. � ““““\\\\” vs. “” vs. “” vs. “” vs. “////”: ”: ”: ”: In DOS, the forward-slash “/” is the command argument delimiter, while the backslash “\” is a directory separator. In Linux/UNIX, the “/” is the directory separator, and the “\” is an escape character.

More about these special characters in a minute! � Filenames: Filenames: Filenames: Filenames: The DOS world uses the “eight dot three” filename convention, meaning that all files followed a format that allowed up to 8 characters in the filename, followed by a period (“dot”), followed by an option extension, up to 3 characters long (e.g. FILENAME.TXT). In UNIX/Linux, there is no such thing as a file extension. Periods can be placed at any part of the filename, and “extensions” may be interpreted differently by all programs, or not at all.

1.4 Special Characters Before we continue to learn about Linux shell commands, it is important to know that there are many symbols and characters that the shell interprets in special ways. This means that certain typed characters: a) cannot be used in certain situations, b) may be used to perform special operations, or, c) must be “escaped” if you want to use them in a normal way. Character DescriptionCharacter DescriptionCharacter DescriptionCharacter Description \\\\ Escape character. If you want to reference a special character, you must “escape” it with a backslash first. Example: touch /tmp/filename\* / / / / Directory separator, used to separate a string of directory names. Example: /usr/src/linux . . . . Current directory. Can also “hide” files when it is the first character in a filename. .. .. .. .. Parent directory ~ ~ ~ ~ User's home directory * * * * Represents 0 or more characters in a filename, or by itself, all files in a directory. Example: pic*2002 can represent the files pic2002, picJanuary2002, picFeb292002, etc. ? ? ? ? Represents a single character in a filename. Example: hello?.txt can represent hello1.txt, helloz.txt, but not hello22.txt [ ] [ ] [ ] [ ] Can be used to represent a range of values, e.g. [0-9], [A-Z], etc. Example: hello[0-2].txt represents the names hello0.txt, hello1.txt, and hello2.txt | | | | “Pipe”. Redirect the output of one command into another command. Example: ls | more > > > > Redirect output of a command into a new file. If the file already exists, over-write it. Example: ls > myfiles.txt >> >> >> >> Redirect the output of a command onto the end of an existing file. Example: echo .Mary 555-1234. >> phonenumbers.txt < < < < Redirect a file as input to a program.

Page 3: Unix practical file

Example: more < phonenumbers.txt ; ; ; ; Command separator. Allows you to execute multiple commands on a single line. Example: cd /var/log ; less messages && && && && Command separator as above, but only runs the second command if the first one finished without errors. Example: cd /var/logs && less messages & & & & Execute a command in the background, and immediately get your shell back. Example: find / -name core > /tmp/corefiles.txt &

1.5 Executing Commands The Command PATH: � Most common commands are located in your shell's “PATH”, meaning that you can just type the name of the program to

execute it. Example: Typing “ ls” will execute the “ ls” command. � Your shell's “PATH” variable includes the most common program locations, such as /bin, /usr/bin, /usr/X11R6/bin, and others.

� To execute commands that are not in your current PATH, you have to give the complete location of the command. Examples: /home/bob/myprogram ./program (Execute a program in the current directory) ~/bin/program (Execute program from a personal bin directory) Command SyntaxCommand SyntaxCommand SyntaxCommand Syntax

� Commands can be run by themselves, or you can pass in additional arguments to make them do different things. Typical

command syntax can look something like this: command [-argument] [-argument] [--argument] [file] � Examples: ls List files in current directory ls -l Lists files in “long” format ls -l --color As above, with colourized output cat filename Show contents of a file cat -n filename Show contents of a file, with line numbers

2.0 Getting Help When you're stuck and need help with a Linux command, help is usually only a few keystrokes away! Help on most Linux commands is typically built right into the commands themselves, available through online help programs (“man pages” and “info pages”), and of course online.

2.1 Using a Command's Built-In Help Many commands have simple “help” screens that can be invoked with special command flags. These flags usually look like “-h” or “--help”. Example: grep --help

2.2 Online Manuals: “Man Pages” The best source of information for most commands can be found in the online manual pages, known as “man pages” for short. To read a command's man page, type “man command”. Examples: man ls Get help on the “ls” command. man man A manual about how to use the manual! To search for a particular word within a man page, type “/word”. To quit from a man page, just type the “Q” key. Sometimes, you might not remember the name of Linux command and you need to search for it. For example, if you want to know how to change a file's permissions, you can search the man page descriptions for the word “permission” like this: man -k permission If you look at the output of this command, you will find a line that looks something like: chmod (1) - change file access permissions Now you know that “chmod” is the command you were looking for. Typing “man chmod” will show you the chmod command's manual page!

2.3 Info Pages Some programs, particularly those released by the Free Software Foundation, use info pages as their main source of online documentation. Info pages are similar to man page, but instead of being displayed on one long scrolling screen, they are presented in shorter segments with links to other pieces of information. Info pages are accessed with the “info” command, or on some Linux distributions, “pinfo” (a nicer info browser). For example: info df Loads the “df” info page.

3.0 Navigating the Linux File system The Linux filesystem is a tree-like hierarchy hierarchy of directories and files. At the base of the filesystem is the “/” directory, otherwise known as the “root” (not to be confused with the root user). Unlike DOS or Windows filesystems that have multiple “roots”, one for each disk drive, the Linux filesystem mounts all disks somewhere underneath the / filesystem. The following table describes many of the most common Linux directories.

3.1 The Linux Directory Layout Directory DescriptionDirectory DescriptionDirectory DescriptionDirectory Description

Page 4: Unix practical file

The nameless base of the filesystem. All other directories, files, drives, and devices are attached to this root. Commonly (but incorrectly) referred to as the “slash” or “/” directory. The “/” is just a directory separator, not a directory itself. /bin /bin /bin /bin Essential command binaries (programs) are stored here (bash, ls, mount, tar, etc.) /boot /boot /boot /boot Static files of the boot loader. /dev /dev /dev /dev Device files. In Linux, hardware devices are acceessd just like other files, and they are kept under this directory. /etc /etc /etc /etc Host-specific system configuration files. /home /home /home /home Location of users' personal home directories (e.g. /home/susan). /lib /lib /lib /lib Essential shared libraries and kernel modules. /proc /proc /proc /proc Process information pseudo-filesystem. An interface to kernel data structures. /root /root /root /root The root (superuser) home directory. /sbin /sbin /sbin /sbin Essential system binaries (fdisk, fsck, init, etc). /tmp /tmp /tmp /tmp Temporary files. All users have permission to place temporary files here. /usr /usr /usr /usr The base directory for most shareable, read-only data (programs, libraries, documentation, and much more). /usr/bin /usr/bin /usr/bin /usr/bin Most user programs are kept here (cc, find, du, etc.). /usr/include /usr/include /usr/include /usr/include Header files for compiling C programs. /usr/lib /usr/lib /usr/lib /usr/lib Libraries for most binary programs. /usr/local /usr/local /usr/local /usr/local “Locally” installed files. This directory only really matters in environments where files are stored on the network. Locally-installed files go in /usr/local/bin, /usr/local/lib, etc.). Also often used for software packages installed from source, or software not officially shipped with the distribution. /usr/sbin /usr/sbin /usr/sbin /usr/sbin Non-vital system binaries (lpd, useradd, etc.) /usr/share /usr/share /usr/share /usr/share Architecture-independent data (icons, backgrounds, documentation, terminfo, man pages, etc.). /usr/src /usr/src /usr/src /usr/src Program source code. E.g. The Linux Kernel, source RPMs, etc. /usr/X11R6 /usr/X11R6 /usr/X11R6 /usr/X11R6 The X Window System. /var /var /var /var Variable data: mail and printer spools, log files, lock files, etc.

3.2 Commands for Navigating the Linux Filesystems The first thing you usually want to do when learning about the Linux filesystem is take some time to look around and see what's there! These next few commands will: a) Tell you where you are, b) take you somewhere else, and c) show you what's there. The following table describes the basic operation of the pwd, cd, and ls commands, and compares them to certain DOS commands that you might already be familiar with. Linux Command DOS Command DescriptionLinux Command DOS Command DescriptionLinux Command DOS Command DescriptionLinux Command DOS Command Description pwd pwd pwd pwd cd “Print Working Directory”. Shows the current location in the directory tree. cd cd cd cd cd, chdir “Change Directory”. When typed all by itself, it returns you to your home directory. cd directory cd directory cd directory cd directory cd directory Change into the specified directory name. Example: cd /usr/src/linux cd ~ cd ~ cd ~ cd ~ “~” is an alias for your home directory. It can be used as a shortcut to your “home”, or other directories relative to your home. cd .. cd .. cd .. cd .. cd.. Move up one directory. For example, if you are in /home/vic and you type “cd ..”, you will end up in /home. cd cd cd cd ---- Return to previous directory. An easy way to get back to your previous location! ls ls ls ls dir /w List all files in the current directory, in column format. ls directory ls directory ls directory ls directory dir directory List the files in the specified directory. Example: ls /var/log ls ls ls ls ----l l l l dir List files in “long” format, one file per line. This also shows you additional info about the file, such as ownership, permissions, date, and size. ls ls ls ls ----a a a a dir /a List all files, including “hidden” files. Hidden files are those files that begin with a “.”, e.g. The .bash_history file in your home directory. ls ls ls ls ––––ldldldld directorydirectorydirectorydirectory A “long” list of “directory”, but instead of showing the directory contents, show the directory's detailed information. For example, compare the output of the following two commands: ls -l /usr/bin ls -ld /usr/bin lslslsls /usr/bin/d* /usr/bin/d* /usr/bin/d* /usr/bin/d* dir d*.* List all files whose names begin with the letter “d” in the /usr/bin directory.

4.0 Piping and Re-Direction Before we move on to learning even more commands, let's side-track to the topics of piping and re-direction. The basic UNIX philosophy, therefore by extension the Linux philosophy, is to have many small programs and utilities that do a particular

Page 5: Unix practical file

job very well. It is the responsibility of the programmer or user to combine these utilities to make more useful command sequences.

4.1 Piping Commands Together The pipe character, “|”, is used to chain two or more commands together. The output of the first command is “piped” into the next program, and if there is a second pipe, the output is sent to the third program, etc. For example: ls -la /usr/bin | less In this example, we run the command “ls -la /usr/bin”, which gives us a long listing of all of the files in /usr/bin. Because the output of this command is typically very long, we pipe the output to a program called “less”, which displays the output for us one screen at a time.

4.2 Redirecting Program Output to Files There are times when it is useful to save the output of a command to a file, instead of displaying it to the screen. For example, if we want to create a file that lists all of the MP3 files in a directory, we can do something like this, using the “>” redirection character: ls -l /home/vic/MP3/*.mp3 > mp3files.txt A similar command can be written so that instead of creating a new file called mp3files.txt, we can append to the end of the original file: ls -l /home/vic/extraMP3s/*.mp3 >> mp3files.txt

5.0 Other Linux Commands The following sections describe many other commands that you will find on most Linux systems. I can't possibly cover the details of all of these commands in this document, so don't forget that you can check the “man pages” for additional information. Not all of the listed commands will be available on all Linux or UNIX distributions.

5.1 Working With Files and Directories These commands can be used to: find out information about files, display files, and manipulate them in other ways (copy, move, delete). LinuxLinuxLinuxLinux CommandCommandCommandCommand DOSDOSDOSDOS CommandCommandCommandCommand DescriptionDescriptionDescriptionDescription file file file file Find out what kind of file it is. For example, “file /bin/ls” tells us that it is a Linux executable file. cat cat cat cat type Display the contents of a text file on the screen. For example: cat mp3files.txt would display the file we created in the previous section. head head head head Display the first few lines of a text file. Example: head /etc/services tail tail tail tail Display the last few lines of a text file. Example: tail /etc/services tail tail tail tail ----f f f f Display the last few lines of a text file, and then output appended data as the file grows (very useful for following log files!). Example: tail -f /var/log/messages cp cp cp cp copy Copies a file from one location to another. Example: cp mp3files.txt /tmp (copies the mp3files.txt file to the /tmp directory) mv mv mv mv rename, ren, move Moves a file to a new location, or renames it. For example: mv mp3files.txt /tmp (copy the file to /tmp, and delete it from the original location) rm rm rm rm del Delete a file. Example: rm /tmp/mp3files.txt mkdir mkdir mkdir mkdir md Make Directory. Example: mkdir /tmp/myfiles/ rmdir rmdir rmdir rmdir rd, rmdir Remove Directory. Example: rmdir /tmp/myfiles/

5.2 Finding Things The following commands are used to find files. “ls” is good for finding files if you already know approximately where they are, but sometimes you need more powerful tools such as these: LinuxLinuxLinuxLinux CommandCommandCommandCommand DescriptionDescriptionDescriptionDescription

Page 6: Unix practical file

which which which which Shows the full path of shell commands found in your path. For example, ifyou want to know exactly where the “grep” command is located on the filesystem, you can type “which grep”. The output should be something like: /bin/grep whereis whereis whereis whereis Locates the program, source code, and manual page for a command (if all information is available). For example, to find out where “ls” and its man page are, type: “whereis ls” The output will look something like: ls: /bin/ls /usr/share/man/man1/ls.1.gz locate locate locate locate A quick way to search for files anywhere on the filesystem. For example, you can find all files and directories that contain the name “mozilla” by typing: locate mozilla find find find find A very powerful command, but sometimes tricky to use. It can be used to search for files matching certain patterns, as well as many other types of searches. A simple example is: find . -name \*mp3 This example starts searching in the current directory “.” and all subdirectories, looking for files with “mp3” at the end of their names.

5.3 Informational Commands The following commands are used to find out some information about the user or the system. Linux Command ExplanationLinux Command ExplanationLinux Command ExplanationLinux Command Explanation ps ps ps ps Lists currently running process (programs). w w w w Show who is logged on and what they are doing. id id id id Print your user-id and group id's df df df df Report filesystem disk space usage (“Disk Free” is how I remember it) du du du du Disk Usage in a particular directory. “du -s” provides a summary for the current directory. top top top top Displays CPU processes in a full-screen GUI. A great way to see the activity on your computer in real-time. Type “Q” to quit. free free free free Displays amount of free and used memory in the system. cat /proc/cpuinfo cat /proc/cpuinfo cat /proc/cpuinfo cat /proc/cpuinfo Displays information about your CPU. cat /proc/meminfo cat /proc/meminfo cat /proc/meminfo cat /proc/meminfo Display lots of information about current memory usage. uname uname uname uname ----a a a a Prints system information to the screen (kernel version, machine type, etc.)

5.4 Other Utilities Here are some other commands that are useful to know. Linux Command DescriptionLinux Command DescriptionLinux Command DescriptionLinux Command Description clear clear clear clear Clear the screen echo echo echo echo Display text on the screen. Mostly useful when writing shell scripts. For example: echo “Hello World” more more more more Display a file, or program output one page at a time. Examples:more mp3files.txt ls -la | more less less less less An improved replacement for the “more” command. Allows you to scroll backwards as well as forwards. grep grep grep grep Search for a pattern in a file or program output. For example, to find out which TCP network port is used by the “nfs” service, you can do this: grep .nfs. /etc/services This looks for any line that contains the string “nfs” in the file “/etc/services” and displays only those lines. lpr lpr lpr lpr Print a file or program output. Examples: lpr mp3files.txt - Print the mp3files.txt file ls -la | lpr - Print the output of the “ls -la” command. sort sort sort sort Sort a file or program output. Example: sort mp3files.txt su su su su “Switch User”. Allows you to switch to another user's account temporarily. The default account to switch to is the root/superuser account. Examples: su - Switch the root account su - - Switch to root, and log in with root's environment su larry - Switch to Larry's account

5.5 Shortcuts to Make it all Easier! When you start using the Bash shell more often, you will appreciate these shortcuts that can save you very much typing time. Shortcut DescriptionShortcut DescriptionShortcut DescriptionShortcut Description Up/Down Arrow Keys Scroll through your most recent commands. You can scroll back to an old command, hit ENTER, and execute the command without having to re-type it. “history” command Show your complete command history. TAB

Page 7: Unix practical file

Completion If you type a partial command or filename that the shell recognizes, you can have it automatically completed for you if you press the TAB key. Try typing the first few characters of your favourite Linux command, then hit TAB a couple of times to see what happens. Complete recent commands with “!” Try this: Type “!” followed by the first couple of letters of a recent command and press ENTER! For example, type: find /usr/bin -type f -name m\* ...and now type: !fi Search your command history with CTRL-R Press CTRL-R and then type any portion of a recent command. It will search the commands for you, and once you find the command you want, just press ENTER. Scrolling the screen with Shift- PageUp and Page Down Scroll back and forward through your terminal.

1. Common Arithmetic operations

a) Addition

echo enter two numbers

read a b

add=`expr $a + $b`

echo $add

b) Subtraction

Page 8: Unix practical file

echo enter two numbers

read a b

sub=`expr $a - $b`

echo $sub

c) Multiplication

echo enter two numbers

read a b

mul=`expr $a \* $b`

echo $mul

d) Division

echo enter two numbers

read a b

div=`expr $a / $b`

Page 9: Unix practical file

echo $div

2. Biggest of Two Numbers

echo enter two numbers

read a b

if test $a -gt $b

then

echo first number is greater

else

echo second number is greater

fi

3. Biggest Among Three Numbers

Page 10: Unix practical file

echo enter three different numbers

read a b c

if test $a -gt $b

then

if test $a -gt $c

then

echo number first is greatest

else

echo third number is greatest

fi

elif test $b -gt $c

then

echo number second is greatest

else

echo third number is greatest

fi

4. Implementation of Combination

Page 11: Unix practical file

echo Combination of subjects in objects:

echo Enter the number of objects

read n

echo Enter the subjects you choose

read r

p=1

q=1

m=1

if test $r -gt $n

then

echo Subjects can not be greater than Objects

exit

fi

x=`expr $n - $r`

while [ $n -gt 0 ]

do

p=`expr $p \* $n`

n=`expr $n - 1`

done

while [ $r -gt 0 ]

do

q=`expr $q \* $r`

r=`expr $r - 1`

Page 12: Unix practical file

done

while [ $x -gt 0 ]

do

m=`expr $m \* $x`

x=`expr $x - 1`

done

q=`expr $q \*$m`

c=`expr $p / $q`

echo Number of combinations will be : $c

5. Compound Interest Computation

echo We are going to calculate Compound Interest

echo Please enter Principal

read p

echo Rate of Interest already divided by 100

read r

echo Years After which getting interest

read t

x=`echo $r + 1 | bc`

n=1

i=1

while [ $n -le $t ]

Page 13: Unix practical file

do

i=`echo $i \* $x | bc`

n=`echo $n + 1 | bc`

done

i=`echo $i \* $p | bc`

ci=`echo $i - $p | bc`

echo Compound Interest will be : $ci

6. Counting upto any Required Number

echo Enter any number

read a

echo Here Counting Starts

n=1

while [ $n -le $a ]

do

echo $n

n=`expr $n + 1`

done

7. Sum of Digits of any 5-digit Number

Page 14: Unix practical file

echo Enter any 5 digit number

read a

b=0

while [ $a -gt 0 ]

do

c=`expr $a % 10`

a=`expr $a / 10`

b=`expr $b + $c`

done

echo Its sum will be $b

8. Find Out Whether a Number is Even or Odd?

echo Enter any number

Page 15: Unix practical file

read a

b=`expr $a % 2`

if test $b -eq 0

then

echo You entered an even number

else

echo You entered an odd number

fi

9. Fibonacci Series Display

echo enter any number

read a

x=0

y=1

z=0

echo Fibonacci Series upto $a will be:

echo $x

echo $y

while [ $a -ge $z ]

do

z=`expr $x + $y`

if test $z -ge $a

Page 16: Unix practical file

then

exit

fi

echo $z

x=`expr $y`

y=`expr $z`

done

10.HCF Calculation

echo Enter two different numbers

read a b

x=1

y=1

if test $a -eq 1

then

echo HCF is 1

exit

elif test $b -eq 1

then

echo HCF is 1

exit

fi

Page 17: Unix practical file

n=1

f=1

if test $a -lt $b

then

n=$a

x=$a

y=$b

else

n=$b

x=$b

y=$a

fi

while [ $n -ge 2 ]

do

c=`expr $x % $n`

if test $c -eq 0

then

d=`expr $y % $n`

if test $d -eq 0

then

echo HCF is $n

exit

fi

fi

n=`expr $n - 1`

f=0

done

if test $f -eq 0

then

echo HCF is 1

fi

Page 18: Unix practical file

11.LCM Calculation

echo Enter two numbers

read a b

n=1

x=1

y=1

r=1

if test $a -eq 1

then

echo LCM is $b

exit

elif test $b -eq 1

then

echo LCM is $a

exit

fi

if test $a -gt $b

then

x=$a

y=$b

else

x=$b

y=$a

Page 19: Unix practical file

fi

while [ $n -le $x ]

do

r=`expr $x \* $n`

res=`expr $r % $y`

if test $res -eq 0

then

echo LCM is $r

exit

fi

n=`expr $n + 1`

done

12.Find Out Whether an year is Leap or not?

echo Enter the year value

read a

x=`expr $a % 4`

if test $x -eq 0

then

echo Its a leap year

Page 20: Unix practical file

else

echo Its not a leap year

fi

13.Calculation using Exponential Function

echo Calculating exponential function

echo Enter Base

read a

echo Enter Exponent

read b

n=1

x=1

while [ $b -ge $n ]

do

x=`expr $x \* $a`

n=`expr $n + 1`

done

echo $a to the power $b is equal to $x

Page 21: Unix practical file

14.Find Out Whether a Number is Prime?

echo

Enter any number

read a

b=`expr $a / 2`

if test $b -eq 1

then

echo Number is prime

fi

n=2

x=0

while [ $b -ge $n ]

do

c=`expr $a % $n`

if test $c -eq 0

then

echo Number is not prime

x=0

break

else

x=1

fi

n=`expr $n + 1`

done

Page 22: Unix practical file

if test $x -eq 1

then

echo Number is prime

fi

15.Simple Interest Calculation

echo We are going to calculate Simple Interest

echo Enter Principal

read a

echo Rate of Interest

read b

echo Years for which you want SI

read c

si=`expr $a \* $b \* $c / 100`

Page 23: Unix practical file

echo Then Simple interest will be $si

16.Swapping two Numbers Using Two Variables

echo

Enter two numbers

read x y

if test $x -gt $y

then

x=`expr $x - $y`

y=`expr $x + $y`

x=`expr $y - $x`

else

y=`expr $y - $x`

x=`expr $x + $y`

y=`expr $x - $y`

fi

echo Swapped Value: $x and $y

echo Hence swapping done

Page 24: Unix practical file

17.Displaying Table of any Number

echo Enter any number

read a

n=1

echo Its table will be

while [ $n -lt 11 ]

do

b=`expr $a \* $n`

echo "$a * $n = $b"

n=`expr $n + 1`

done

Page 25: Unix practical file

18.String Operations

echo String Concatenation

echo Enter First String

read a

echo Now second String

read b

echo Concatenated String : $a $b

Page 26: Unix practical file

19.Temperature Conversion of Celsius into Farenheit

echo Enter Temperature in celsius

read c

c=`echo $c \* 9 | bc`

c=`echo $c / 5 | bc`

c=`echo $c + 32 | bc`

echo Hence Temperature in Farenheit : $c

20.Checking Palindrome

echo Checking Palindrome

echo give input number

read a

d=`expr $a`

c=0

Page 27: Unix practical file

while [ $d -gt 0 ]

do

b=`expr $d % 10`

d=`expr $d / 10`

c=`expr $c \* 10 + $b`

done

if test $a -eq $c

then

echo The Given number is Palindrome

else

echo The number is not a Palindrome

fi

21.Menu Driven Programs List

echo "what you want to do?

1. Perform Arithmetic Operations

2. Digit Sum

3. Comparison of 2 numbers

4. Comparison of 3 numbers

5. Celsius to Fahrenheit

6. Combination

7. Permutation

8. Compound Interest

9. Even or Odd

10. Fibonacci Series upto a specified number

11. HCF of two numbers

12. LCM of two numbers

13. Leap Year determination

Page 28: Unix practical file

14. Palindrome

15. Whole number Exponent calculation

16. Prime number detection

17. Simple Interest Calculation

18. Table of a specified number

19. Exchanging two numbers without a third variable

20. Counting till a specified number

enter your choice......"

read ch

case $ch in

1)

echo "Select the operation you want to perform:"

echo "1. Addition\n2. Subtraction\n3. Multiplication\n4. Divison"

read choice

case $choice in

1)

read -p "Enter 2 numbers: " a b

ans=`expr $a + $b`

echo "The answer is $ans"

;;

2)

read -p "Enter 2 numbers: " a b

ans=`expr $a - $b`

echo "The answer is $ans"

;;

3)

read -p "Enter 2 numbers: " a b

ans=`expr $a \* $b`

echo "The answer is $ans"

;;

4)

read -p "Enter 2 numbers: " a b

ans=`expr $a / $b`

echo "The answer is $ans"

;;

esac

2)

read -p "Enter a 5 digit number: " num

i=0

mod=0

sum=0

for (( i = 0; $num != 0; i++ ))

do

mod=`expr $num % 10`

num=`expr $num / 10`

sum=`expr $sum + $mod`

Page 29: Unix practical file

done

if test $i -gt 5

then

echo "Next time please enter a number of 5 digits only."

fi

echo "The answer is: $sum"

3)

read -p "Enter 2 numbers: " a b

if test $a -gt $b

then

echo "$a is greater"

else

echo "$b is greater"

fi

;;

4)

read -p "Enter 3 numbers: " a b c

if test $a -gt $b

then

if test $a -gt $c

then

echo "$a is greatest"

else

echo "$c is greatest"

fi

else

if test $b -gt $c

then

echo "$b is greatest"

else

echo "$c is greatest"

fi

fi

;;

5)

read -p "Enter temperature in degrees celcius: " degc

temp=`expr $degc \* 9`

temp=`expr $temp / 5`

temp=`expr $temp + 32`

echo "$degc degrees celcius is $temp fahrenheit."

;;

6)

echo "enter the total number of objects"

read n

echo "enter the selected number of objects"

read r

Page 30: Unix practical file

if [ $r -gt $n ]

then

echo "selected objects can not be greater than the total number of objects"

else

d=`expr $n - $r`

b=1

while [ $n -gt 0 ]

do

b=`expr $b \* $n`

n=`expr $n - 1`

done

c=1

while [ $d -gt 0 ]

do

c=`expr $c \* $d`

d=`expr $d - 1`

done

p=1

while [ $r -gt 0 ]

do

p=`expr $p \* $r`

r=`expr $r - 1`

done

q=`expr $c \* $p`

e=`expr $b / $q`

fi

echo $e

;;

7)

echo "enter the total number of objects"

read n

echo "enter the selected number of objects"

read r

if [ $r -gt $n ]

then

echo "selected objects can not be greater than the total number of objects"

else

d=`expr $n - $r`

b=1

while [ $n -gt 0 ]

do

b=`expr $b \* $n`

n=`expr $n - 1`

done

c=1

while [ $d -gt 0 ]

do

c=`expr $c \* $d`

d=`expr $d - 1`

Page 31: Unix practical file

done

e=`expr $b / $c`

fi

echo $e

;;

8)

read -p "Enter the principal amount: " p

read -p "Enter the rate of interest: " r

read -p "Enter the time period: " t

temp=`expr $r / 100`

temp=`expr $temp + 1`

for ((i = 0; i < $t; i++))

do

temp=`expr $temp \* $temp`

done

temp=`expr $p \* $temp`

temp=`expr $temp - $p`

echo "\n$temp is the interest."

;;

9)

read -p "Enter any integer: " num

mod=`expr $num % 2`

if test $mod -eq 0

then

echo "This integer is even."

else echo "This integer is odd."

fi

;;

10)

read -p "Enter a limiting number: " num

a=0

b=1

sum=0

echo $a

for ((i = 0; $sum <= $num; i++))

do

echo $b

sum=`expr $a + $b`

a=$b

b=$sum

done

;;

Page 32: Unix practical file

11)

echo enter two numbers

read a b

if [ $a -gt $b ]

then

i=`expr $a`

j=`expr $b`

else

i=`expr $b`

j=`expr $a`

fi

c=`expr $i % $j`

while [ $c -ne 0 ]

do

i=`expr $j`

j=`expr $c`

c=`expr $i % $j`

done

echo HCF is $j

;;

12)

echo enter two numbers

read a b

if [ $a -lt $b ]

then

i=`expr $a`

else

i=`expr $b`

fi

z=`expr $a \* $b`

while [ $i -ne $z ]

do

x=`expr $i % $b`

y=`expr $i % $a`

if [ $x -eq 0 -a $y -eq 0 ]

then

break

fi

i=`expr $i + 1`

done

echo lcm of given numbers is : $i

;;

13)

read -p "Enter a year: " year

mod=`expr $year % 100`

if test $mod -eq 0

then

mod=`expr $year % 400`

Page 33: Unix practical file

if test $mod -eq 0

then

echo "This is a leap year."

exit 0

else

echo "This is not a leap year."

exit 0

fi

else

mod=`expr $year % 4`

if test $mod -eq 0

then

echo "This is a leap year."

exit 0

else

echo "This is not a leap year."

exit 0

fi

fi

;;

14)

read -p "Enter a string: " str

len=`expr length $str`

truth=1

for((i = 1; $i <= $len && $truth == 1; i++))

do

s1=`expr substr $str $i 1`

s2=`expr substr $str $len 1`

if test $s1 = $s2

then

len=`expr $len - 1`

else

truth=0

fi

done

if test $truth -eq 1

then

echo "This string is a palindrome!"

else

echo "This string is not a palindrome"

fi

;;

15)

read -p "Enter any integer: " num

read -p "Enter the power: " pow

Page 34: Unix practical file

ans=$num

for ((i = 1; i < $pow; i++))

do

ans=`expr $num \* $ans`

done

echo "$num raised to power of $pow is: $ans"

;;

16)

read -p "Enter a number: " num

sqrt=`expr "sqrt($num)" | bc`

if test $num -eq 2

then

echo "This is a prime number."

exit 0

else

chk23=`expr $num % 2`

if test $chk23 -eq 0

then

echo "This is not a prime number."

exit 0

fi

fi

if test $num -eq 3

then

echo "This is a prime number."

exit 0

else

chk23=`expr $num % 3`

if test $chk23 -eq 0

then

echo "This is not a prime number."

exit 0

fi

fi

k=0

for((i = 1; $k <= $sqrt; i++))

do

k=`expr 6 \* $i`

k=`expr $k + 1`

r1=`expr $num % $k`

k=`expr $k - 1`

k=`expr $k - 1`

r2=`expr $num % $k`

if test $r1 -eq 0 || test $r2 -eq 0

then

Page 35: Unix practical file

echo "This is not a prime number."

exit 0

fi

done

echo "This is a prime number."

;;

17)

read -p "Enter the principal amount: " p

read -p "Enter the rate of interest: " r

read -p "Enter the time period: " t

temp=`expr $p \* $r`

temp=`expr $temp \* $t`

temp=`expr $temp / 100`

echo "\nThe simple interst is: $temp"

;;

18)

read -p "Enter any number: " num

for ((i = 1; i <= 10 ; i++))

do

echo "$num x $i = `expr $num \* $i`"

done

;;

19)

read -p "Enter 2 numbers: " a b

a=`expr $a + $b`

b=`expr $a - $b`

a=`expr $a - $b`

echo "$a $b"

;;

20)

echo enter any number

read a

i=0

echo counting is:

while [ $i -le $a ]

do

echo $i

i=`expr $i + 1`

done

;;

esac


Recommended