Presentation is loading. Please wait.

Presentation is loading. Please wait.

SHELL PROGRAMMING Objectives Introduction to Shells

Similar presentations


Presentation on theme: "SHELL PROGRAMMING Objectives Introduction to Shells"— Presentation transcript:

1 SHELL PROGRAMMING Objectives Introduction to Shells
Introduction to shell programming Shell variables Arithmetic Operations Conditions - test Conditional and looping statements The getopts command Shell Programming Ver 4.0

2 Shell Programming (contd.)
Introduction Unix offers several command processors Called as shells Primary interface to the user The two basic shells are Bourne Shell C Shell The shells are Programs under execution Shell Programming Ver 4.0

3 Shell Programming (contd.)
Introduction The various shells Name of the Formal name Shell program sh Bourne Shell rsh Restricted Bourne Shell ksh Korn Shell rksh Restricted Korn Shell bash Bourne Again Shell csh C Shell Shell Programming Ver 4.0

4 Shell Programming (contd.)
Introduction The Bourne Shell Named after the developer Stephen R. Broune The prompt displayed by this shell is “ $ ” Supports for processes both Foreground and background Pipes, filters etc. Most unix implementations includes this shell Shell Programming Ver 4.0

5 Shell Programming (contd.)
Introduction C-Shell Developed by Bill Joy Advantages History mechanism Job control Aliasing Alternate names for commands Shell Programming Ver 4.0

6 Shell Programming (contd.)
Introduction Restricted Shell Special version of Bourne Shell Has a limited set of capabilities and privileges Korn Shell Named after David Korn Up-ward Compatible extension of Bourne Shell Has the history, job control and command aliasing Shell Programming Ver 4.0

7 Shell Programming (contd.)
Introduction Restricted Korn Shell Restricted version of Korn Shell Bourne Again Shell Product of Free Software Foundation Developed by Brian Fox Extended version of Bourne Shell Shell Programming Ver 4.0

8 Shell Programming (contd.)
Introduction What is a shell ? A program to interpret the commands It reads, interprets and process the command The shell signals it is ready by displaying a prompt On a UNIX system there are various shells The UNIX system starts a default shell for a user Reading an entry from the /etc /passwd file Shell Programming Ver 4.0

9 Shell Programming (contd.)
Introduction to shell scripts All shells has a built in language A user can write a script using the language and The shell will execute that script The script does not require compilation or linking The shell interprets the script and executes directly, using kernel facility Shell programs can be used for various tasks Shell Programming Ver 4.0

10 Shell Programming (contd.)
Introduction Shell Script Uses Customizing the work environment Automating some routine tasks Backing up all the files Producing the sales report every month Executing system procedures Shutting down formatting the disk etc… Shell Programming Ver 4.0

11 Shell Programming (contd.)
Introduction The # symbol marks the beginning of a comment The execute permission for the file must be set chmod 744 program1 # program1 ls who pwd Shell Programming Ver 4.0

12 Shell Programming (contd.)
Introduction When a shell script is executed The login shell creates a new shell for the script to be executed The login-in shell waits for the new shell to terminate Any task that can be achieved at the shell prompt Can be achieved in the shell script Shell Programming Ver 4.0

13 Shell Programming (contd.)
Shell variables Provided to store and manipulate data Any number of variables can be Created and Destroyed Rules for building a variable A variable name is a combination of Alphabets, digits and underscore (‘ _ ‘ ) Comas and blanks are not allowed Shell Programming Ver 4.0

14 Shell Programming (contd.)
Shell variables Rules for building a variable ( Contd. ) The first character must be an alphabet They can be of any length Variable names are case-sensitive #program2 echo What is your name\? read name echo Hello $name Shell Programming Ver 4.0

15 Shell Programming (contd.)
Shell variables The assignment operator To assign values to a variable There should be no space on either side of the assignment operator The variable is created if it did not exist name=sam age=20 dirname=/usr/sam Shell Programming Ver 4.0

16 Shell Programming (contd.)
Shell variables System variables The shell provides the values for these variables Used by the system and govern the environment These variables can be changed To customize to system environment Example The dollar prompt can be changed $ PS1=“Next” Shell Programming Ver 4.0

17 Shell Programming (contd.)
System variables Variable Meaning PS2 System prompt2 ( default “>” ) PATH Path which shell searches to execute HOME Default working directory LOGNAME login name IFS Internal field separator SHELL Default working shell TERM Name of the terminal TZ Time zone Shell Programming Ver 4.0

18 Shell Programming (contd.)
System variables The list of all system variables and values can be displayed using the set command $ set HOME=/usr/sam IFS= LOGNAME=sam MAIL=/usr/spool/mail/sam PATH=/bin:/usr/bin:/usr/sam:. ... Shell Programming Ver 4.0

19 Shell Programming (contd.)
Shell Keywords Borne shell has a set of predefined words They cannot be used as variable names echo read set unset readonly shift export if else fi while do done for until case esac break continue exit return trap wait eval exec ulimit umask Shell Programming Ver 4.0

20 Shell Programming (contd.)
Shell variables All shell variables are string variables a=20 is stored as characters 2 and 0 A variable can contain more than one word The assignment must be made in double quotes $ c=“Two Words” $ echo $c Shell Programming Ver 4.0

21 Shell Programming (contd.)
Shell variables Assignment can be carried out in a single line All the variables defined in a shell script Are destroyed after the shell script execution is over The user defined variables can be defined at the Dollar prompt or In a shell script $name=sam age=20 $echo Name of the boy is $name,and his age is $age Name of the boy is sam,and his age is 20 Shell Programming Ver 4.0

22 Shell Programming (contd.)
Shell variables A null variable is a variable which is not initialized $ a=“ ” b=‘ ‘ c= Echoing a null variable a blank line appears on the screen The shell ignores a null variable in a command $ var1=“ ” var2=“ ” $ echo wc -l $var1 $var2 file1 178 Shell Programming Ver 4.0

23 Shell Programming (contd.)
Shell variables Constants are variables made read-only $a=20 $readonly a All readonly variables can be listed By entering readonly at command prompt $ readonly Shell Programming Ver 4.0

24 Shell Programming (contd.)
Shell variables A variable can be removed by using the unset command $ unset b The variable and the value are erased from the memory Unsetting a system variable is not allowed $ unset PS1 ( error ) Shell Programming Ver 4.0

25 Shell Programming (contd.)
Command line arguments To convey information from the user to the program The user specifies arguments at the command line These arguments can be accessed using Positional parameters The positional parameters are specified in the script as $1 to $9 Example- To copy a file from a srcfile to dstfile $ mycopy srcfile dstfile Shell Programming Ver 4.0

26 Shell Programming (contd.)
Command line arguments The statement cp $1 $2 is translated to cp srcfile dstfile Write a shell script which accepts a filename Changes the permissions to rwxr--r-- ( 744 ) #mycopy #usage: mycopy <source file> <destination file > cp $1 $2 echo copy completed. cat $2 Shell Programming Ver 4.0

27 Shell Programming (contd.)
Positional Parameters The user cannot assign values to positional parameters $1=sam $2=100 (error ) The set command can be used to assign values to the positional parameters $ set This is my first shell script $ echo $1 $2 $3 $4 $5 $6 This is my first shell script $ set sam is good at shell programming sam is good at shell programming Shell Programming Ver 4.0

28 Shell Programming (contd.)
Positional Parameters The command in the quoting metacharacter is replaced by the output of the command Theses quote are called reverse quote or accent graves Write a program to rename a filename to filename.logname Write a program to display date in the desired format $ set ‘cat lucky‘ $ echo $1 $2 $3 $4 $5 $6 Shell Programming Ver 4.0

29 Shell Programming (contd.)
Positional Parameters The parameter $# can be used to find out the number of parameters from set command parameters from the command line The Unix metacharacter * represents all the files when used as an argument $ prgname * # prgname #usage prgname <list of files > echo Total number of files = $# Shell Programming Ver 4.0

30 Shell Programming (contd.)
Positional Parameters If the number of parameters are greater than nine The shift command can be used to shift the parameters The $* can be used for all the positional parameters $ set a b c d e f g h i j k l m n o p $ echo $1 $2 $3 $4 $5 $6 $7 $8 $9 a b c d e f g h i $ shift 7 h I j k l m n o p Shell Programming Ver 4.0

31 Shell Programming (contd.)
Arithmetic in shell scripts The values stored in the variables are of type character The expr can be used to evaluate an arithmetic expression # example of arithmetic program a=20 b=10 echo ‘expr $a + $b‘ echo ‘expr $a - $b‘ echo ‘expr $a \* $b‘ echo ‘expr $a / $b‘ echo ‘expr $a % $b‘ Shell Programming Ver 4.0

32 Shell Programming (contd.)
Arithmetic in shell scripts Terms of the expression must be separated by blanks The priorities for arithmetic operators are /, * and % first priority + and - Second priority If the operators of the same priority occur in an expression Preference is give to the one occurring first $a \* $b + $c / $d $a \* $b is evaluated first To force a particular order parenthesis must be used $a \* \( $b + $c \) / %d Shell Programming Ver 4.0

33 Shell Programming (contd.)
Arithmetic in shell scripts The expr can be used only for integers For Floating point the command bc is used # example of floating point arithmetic program a=15.5 b=7.8 c=‘echo $a + $b | bc‘ d=‘echo $a - $b | bc‘ e=‘echo $a \* $b | bc‘ f=‘echo $a / $b | bc‘ Shell Programming Ver 4.0

34 Shell Programming (contd.)
Escape sequences The echo statement can contain escape sequences Sequence Behavior \n newline character \r Carriage return \b backspace \t Tab \c cursor position Shell Programming Ver 4.0

35 Shell Programming (contd.)
Read command If only two values are supplied the third one would be treated as null variable If more than three values are supplied The first three are supplied to a, b and c The remaining are appended to the third #prgname echo Enter the values of a,b and c read a b c echo a b c Shell Programming Ver 4.0

36 Shell Programming (contd.)
Exercises A persons basic salary is entered through a keyboard His DA is 35%of basic HRA is 20% of his basic Write a program to calculate his gross salary If a five digit number is entered through a keyboard Write a program to calculate the sum of the digits The file /etc/passwd contains information about all users Write a program that takes a login name as an argument,obtain information from the /etc/password Print the information in an understandable format Shell Programming Ver 4.0

37 Shell Programming (contd.)
Control Instructions Specify the order of execution of the program Sequence Control Instructions Selection or Decision Control Instructions Loop Control Instructions Case Control Instructions The Sequence Control Instructions ensures that The instructions are executed in the same order as they appear Shell Programming Ver 4.0

38 Shell Programming (contd.)
Decision Control Bourne shell offers four decision making instructions if-then-fi statement if-then-else-fi statement if-then-elif-else-fi statement case-esac statement The simplest form of if-then-fi statement is if control command command1 fi Shell Programming Ver 4.0

39 Shell Programming (contd.)
if-then-fi statement This statement tests the exit status of the command Weather it was executed successfully or not The exit status is 0 on success The exit status is 1 when not successful Example If cp command is successful in copying it returns 0 If grep is successful in locating the pattern, it returns 0 The control command can be any valid UNIX command Shell Programming Ver 4.0

40 Shell Programming (contd.)
if-then-fi statement If the exit status of the control command is 0 The command1 is executed else it is not executed Every if statement must end with fi echo Enter source and destination files read src dst if cp $src $dst then echo file Successfully copied fi Shell Programming Ver 4.0

41 Shell Programming (contd.)
if-then-else-fi statement echo Enter source and destination files read src dst if cp $src $dst then echo file Successfully copied # else echo Failed to copy fi Shell Programming Ver 4.0

42 Shell Programming (contd.)
if-then-else-fi statement The group of commands between then and else is called if block The group of commands between else and fi is called else block Even if there is only one command to be executed The fi cannot be dropped Shell Programming Ver 4.0

43 Shell Programming (contd.)
Test command Performs a test and returns the result as success or failure #Use of test command echo Enter a number from 1 to 10 read num if test $num -lt 5 then echo the number is less than five fi Shell Programming Ver 4.0

44 Shell Programming (contd.)
Test command The test command can carry out several tests Numerical tests Comparing numbers if they are greater, lesser or equal to String tests Testing if strings are same,greater than zero etc File tests Tests if it is a directory,character special files etc Shell Programming Ver 4.0

45 Shell Programming (contd.)
Test command Numerical test Operator Meaning -gt greater than -lt less than -ge greater than or equal to -le less than or equal to -ne not equal to -eq equal to Shell Programming Ver 4.0

46 Shell Programming (contd.)
Test command # Example of numeric test echo Enter basic salary read bs if [ $bs -lt 2500 ] then hra=‘echo $bs \* 10 / 100 | bc‘ da=‘echo $bs \* 90 / 100 bc‘ else hra=500 da=‘echo $bs \* 98 / 100 | bc‘ fi gs=‘echo $bs + $hra + $da | bc‘ echo Gross salary = Rs. $gs Shell Programming Ver 4.0

47 Shell Programming (contd.)
Test command String test Operator Meaning string1 = string2 True if the strings are same string1 != string2 True if the strings are different -n string True if the length of the string is greater than zero -z string True if the length is zero string True if the string is not null string Shell Programming Ver 4.0

48 Shell Programming (contd.)
Test command str1=“Good” str2=“bad” str3= [$str1 = $str2 ] echo$? [$str1 != $str2] [-n $str1 ] echo$? [-z “$str3” ] echo $? [-z $str3 ] [ “Str3” ] Shell Programming Ver 4.0

49 Shell Programming (contd.)
Test command If there are more than two words in a string They have to be enclosed in double quotes for comparison str1=“Hello World” str2=“Goodbye World” [“$str1” = “$str2” ] #[$str1 = $str2 ] is an error echo$? Shell Programming Ver 4.0

50 Shell Programming (contd.)
Test command File test Operator Meaning -s file True if file exist & greater than zero -f file True if file exist & is not a directory -d file True if file exist & is a directory -c file True if file exist & is a character special file -b file True if file exist & block special file Shell Programming Ver 4.0

51 Shell Programming (contd.)
Test command File test Operator Meaning -r file True if file exist & has read permissions -w file True if file exist & has write permissions -x file True if file exist & has execute permissions -k file True if file exist & its sticky bit is set Shell Programming Ver 4.0

52 Shell Programming (contd.)
File test # prgname # To test if the file has write permission echo Enter file name read filename if [ -w $filename ] then echo Type to append it to the file, Ctrl + D to stop cat >> $filename else echo Sorry You don’t have the permission fi Shell Programming Ver 4.0

53 Shell Programming (contd.)
Nested if - else The if statement can be nested if control command then do this and this else fi Shell Programming Ver 4.0

54 Shell Programming (contd.)
Nested if - else if control command then do this else and this fi Shell Programming Ver 4.0

55 Shell Programming (contd.)
if-then-elif-else-fi # example of nested else using the elif clause echo “Enter the your name \c” read name if [ “$name” = sam ] then echo hello sam elif [ “$name” = tom ] echo hello tom else echo Sorry you do not have permissions fi Shell Programming Ver 4.0

56 Shell Programming (contd.)
Logical operators Operator Meaning -a AND operator -o OR operator ! NOT operator Shell Programming Ver 4.0

57 Shell Programming (contd.)
Logical operators # example logical operators echo “Enter any file name \c” read fname if [ ! -z “$fname” ] then if [ -r $fname -a -w $fname -a -x $fname ] echo read,write and execute permissions allowed else echo read,write and execute permissions denied fi echo Improper file name Shell Programming Ver 4.0

58 Shell Programming (contd.)
Case control statement Used to select form several possible alternatives case value in choice1) do this ;; choice2) *) esac Shell Programming Ver 4.0

59 Shell Programming (contd.)
Case control statement # example case - esac control echo “Enter 1 2 or 3: \c” read num case $num in 1)echo you entered one ;; 2)echo you entered two 3)echo you entered three *)echo only 1 or 2 esac Shell Programming Ver 4.0

60 Shell Programming (contd.)
Case control statement # Usage: prgname <name > # name sam tom harry john case $1 in sam | tom) echo You have permissions to read only ;; harry | john) echo You can read and write *)echo Permission denied esac Shell Programming Ver 4.0

61 Shell Programming (contd.)
Case control statement echo Enter any alphabet read char case $char in [a-z])echo You entered lower case letter ;; [A-Z])echo You entered Upper case letter ?)echo You have entered a special symbol *)echo error esac Shell Programming Ver 4.0

62 Shell Programming (contd.)
case - esac statement The case can be in any order The value portion of the case statement can be A shell variable A shell script argument Out put of a command Example case ‘who am i | cut -f1’ in There cannot be a choice in case $i -gt 50) # error Shell Programming Ver 4.0

63 Shell Programming (contd.)
Exercises An integer is entered through a key board Find out if it is odd or even Write a shell script which receives any year Determine if it is a leap year or not Hint A year is a leap year If it is divisible 4 but not by 100 except that years are divisible by 400 Write a shell script that accepts the login name Displays the terminal the user has logged on Append this information in a log file Shell Programming Ver 4.0

64 Shell Programming (contd.)
Exercises Write a shell script that displays messages Good morning / afternoon / evening Write a menu driven program that has the following menus Contents of /etc/passwd file List of all the users who have logged on Present working directory The data and time in a proper format exit Shell Programming Ver 4.0

65 Shell Programming (contd.)
Loop control To repeat a set of instructions either A specified number of times or Until a particular condition occurs The shell provides three methods for statement while statement until statement Shell Programming Ver 4.0

66 Shell Programming (contd.)
Loop control # calculation of simple interest count=1 while [ $count -le 3 ] do echo “\nEnter p,n,r\c” read p n r si=‘echo $p \* $n \* $r /100 | bc‘ echo Simple interest = Rs.$si count=‘expr $count + 1‘ done Shell Programming Ver 4.0

67 Shell Programming (contd.)
Loop control The control command can be any of the valid unix command while [ $# -le 5 ] while who | grep $logname while [ -r $file -a -w $file ] etc . . . The statements with in the loop may be A single command Group of commands They must be put in between do and done Shell Programming Ver 4.0

68 Shell Programming (contd.)
Loop control The loop counter can be a real number count=20.0 while [ $count -ge 10.0 ] do # do this count=‘echo $count -0.1 | bc‘ done Shell Programming Ver 4.0

69 Shell Programming (contd.)
Loop control Example # usage prname <username> if [ $# -lt 1 ] then echo Improper usage echo correct usage is: $0 username exit fi logname=$1 time=0 Shell Programming Ver 4.0

70 Shell Programming (contd.)
Loop control while true do who | grep “$logname” > /dev/null if[$? = 0 ] then echo $logname has logged in if[$time -ne 0 ] then echo He has logged $time min late fi exit else time=‘expr $time + 1‘ sleep 60 done Shell Programming Ver 4.0

71 Shell Programming (contd.)
Internal Field separator ( IFS ) It is a system variable By default it value is space, tab and a new line The IFS can be changed to any value The program must reset it to the default value Example To read the contents of /etc/passwd file The field separator used is : Shell Programming Ver 4.0

72 Shell Programming (contd.)
Internal Field separator ( IFS ) # other lines for error checking logname=$1 line=‘grep $logname /etc/passwd` oldifs=“$IFS” IFS=: set $line clear echo User = $1 echo UID = $3 echo GID = $4 echo Default working directory = $6 Shell Programming Ver 4.0

73 Shell Programming (contd.)
until loop Executes the instructions between do and done till The exit status of the command is false Terminates when it becomes true # printing numbers using while i=1 while [ $i -le 10 ] do echo $1 i=‘expr $i + 1‘ done Shell Programming Ver 4.0

74 Shell Programming (contd.)
until loop # printing numbers using until i=1 until [ $i -gt 10 ] do echo $1 i=‘expr $i + 1‘ done Shell Programming Ver 4.0

75 Shell Programming (contd.)
for loop Allows to specify a list of values which the Control variable can take The loop is executed for each value in the list for control-variable in value1 value2 value3. . . do command1 command2 command3 done Shell Programming Ver 4.0

76 Shell Programming (contd.)
for loop for name in sam tom john kate do echo $name done sam tom john kate Shell Programming Ver 4.0

77 Shell Programming (contd.)
for loop for command line arguments # $* can also be used as - for words in $* for words do echo $words done # To print names of all sub-directories for entry in * do if[ -d $entry ] then echo $entry fi done Shell Programming Ver 4.0

78 Shell Programming (contd.)
for loop The values that the control variable takes can Be mentioned immediately after the in keyword Taken from the shell script argument for var in $* or for var Take filenames from a directory for file in *.c do mv $file $file.cpp done Shell Programming Ver 4.0

79 Shell Programming (contd.)
for loop The control variable can take the values from a shell name=“sam tom john tim kate” for words in $name do echo $words done Shell Programming Ver 4.0

80 Shell Programming (contd.)
for loop The control variable can take values From the output of a command for cmd in ‘cat commandlist‘ do man $cmd >>helpfile done Shell Programming Ver 4.0

81 Shell Programming (contd.)
break statement When the key word break is encountered the control Automatically passes to the first statement after the loop i=1 j=1 while [ $i -le 100 ] do while [ $j -lt 200 ] if [ $j -eq 150 ] break # break2 to break from outer loop fi j=‘expr $j + 1‘ done Shell Programming Ver 4.0

82 Shell Programming (contd.)
continue statement When the key word continue is encountered the control Automatically passes to the beginning of the loop Both break and continue can be used for While loops for loops until loops If there are three nested loops continue3 will take the control to the outermost loop Shell Programming Ver 4.0

83 Shell Programming (contd.)
Exercise Write a program to count the number of lines and words supplied at standard input Write a program that takes a pathname as input Creates the directories if not already present Changes to the last directory in the list Two numbers are entered, Write a shell script to find The value of one number raised to the power of other number Write shell scripts that works similarly to head command tail command and more command Shell Programming Ver 4.0

84 Shell Programming (contd.)
Exercise Write a program to print all the prime numbers Between 1 to 500 Use break and continue Write a program to generate all possible combinations of a b c Write a script to print the list of files you have with Only Read permissions Read and write permissions Read write and execute permissions It must be a menu driven program Shell Programming Ver 4.0

85 Shell Programming (contd.)
Metatcharacters Characters with special significance Also called as regular expressions Type Metacharacters Filename substitution ? * [...] [!...] I/O redirection > < >> << m> m>&n Process execution ; ( ) & && || Quoting metacharacters \ “ “ ‘ ‘ ` ` Positional parameters $1...$9 Special Characters $0 $* $# $! $$ $- Shell Programming Ver 4.0

86 Shell Programming (contd.)
Metatcharacters File Name Substitution ? Stands for any one character * A wild card character Represents any combination of any number of characters When mentioned with any command it represents A complete list of all files in current directory Except Hidden files that start with a period ( . ) Shell Programming Ver 4.0

87 Shell Programming (contd.)
Metatcharacters File Name Substitution [...] The shell has a choice of any one character from the list [!...] The shell has a choice of any one characters not in list Examples ls a* ls ?? ls a?b? ls [kdpe]* ls [c-fmpv-z]* ls [!d-g]* Shell Programming Ver 4.0

88 Shell Programming (contd.)
Metatcharacters I/O Redirection Specify from where the input must be picked up and sent Examples cat file1 > out_file cat file2 >> out_file cat < file2 >> out_file cat << stop 2 > errors time ls > myfile 2 > &1 Shell Programming Ver 4.0

89 Shell Programming (contd.)
Metatcharacters Process execution Example ls -l ; who ; banner Hello ( cd mydir ; pwd ) sort file1 > file2 & command1 && command2 command1 || command2 $ grep sam file1 || grep sam addfile && cat a file Shell Programming Ver 4.0

90 Shell Programming (contd.)
Metatcharacters Quoting \ Takes away the special significance of the character ‘ ‘ (single quotes )Takes every enclosed character literally ` ` (back quotes ) Replaces the command they enclosed with its out put “ “ Certain metacharacters are valid inside the quote $ \ ` ` Shell Programming Ver 4.0

91 Shell Programming (contd.)
Metatcharacters Shell variables $1 to $9 Shell variables $$ PID of the current shell $? Exit status of the last executed command $! PID of the last background process $- Current Shell settings Shell Programming Ver 4.0

92 Shell Programming (contd.)
Metatcharacters Shell variables $# Total number of Positional parameters $0 Name of the command being executed $* List of all shell arguments Similar to $* , Yields each argument separately when enclosed in double quotes $! PID of the last background process Shell Programming Ver 4.0

93 Shell Programming (contd.)
Metatcharacters Shell variables # pgrname file1 file2 file cat “$*” cat pgrname f1 f2 f3 cat “f1 f2 f3” cat “f1” “f2” “f3” Shell Programming Ver 4.0

94 Shell Programming (contd.)
Metatcharacters Debugging a Script Add the the following statement at the beginning of the script set -vx v Ensures that each line is displayed before execution x Ensures that command along with that argument value is also displayed $ echo $- Displays which options are set set + vx Unsets the options Shell Programming Ver 4.0

95 Shell Programming (contd.)
getopts command # Usage prgname [-a/b ] getopts ab choice case $choice in a)echo You entered a ;; b)echo You entered b ?)echo error Shell Programming Ver 4.0

96 Shell Programming (contd.)
getopts command On execution of the script Accepts a single character option from the command line The option must be preceded by - (minus sign ) getopts reads the options and decides if it is valid or not If found valid it stores the value in the variable If found invalid stores a “ ? “ in the variable getopts also flashes an error message Shell Programming Ver 4.0


Download ppt "SHELL PROGRAMMING Objectives Introduction to Shells"

Similar presentations


Ads by Google