Shell Programing

Only available on StudyMode
  • Topic: Unix shell, Shell, Unix SUS2008 utilities
  • Pages : 21 (2683 words )
  • Download(s) : 173
  • Published : June 1, 2013
Open Document
Text Preview
Shell Programming
University of Maryland Eastern Shore Dept. of Computer Science Jianhua Yang

1

CSDP399 Introduction to Unix and Programming

12/22/12

Outline
Unix Shell programming:
Shell scripts.  Definition.  Uses of shell scripts.  Writing shell scripts.

2

CSDP399 Introduction to Unix and Programming

12/22/12

Shell scripts
A shell script is a text file with Unix

commands in it. Shell scripts usually begin with a #! and a shell name (complete pathname of shell). Pathname of shell be found using the which

command. The shell name is the shell that will execute this script.  E.g: #!/bin/bash

3

CSDP399 Introduction to Unix and Programming

12/22/12

Shell scripts (contd.)
If no shell is specified in the script file, the

default is chosen to be the currently executing shell.

4

CSDP399 Introduction to Unix and Programming

12/22/12

Shell scripts (contd.)
Any Unix command can go in a shell script
Commands are executed in order or in the

flow determined by control statements.
Different shells have different control

structures
The #! line is very important. We will write shell scripts with the Bourne

shell (bash).

5

CSDP399 Introduction to Unix and Programming

12/22/12

Shell scripts (contd.)
A shell script as a standalone is an

executable program:
Must use chmod to change the permissions

of the script to be executable also.
Can run script explicitly also, by specifying

the shell name.
E.g: $ bash myscript E.g: $ csh myscript

6

CSDP399 Introduction to Unix and Programming

12/22/12

Shell scripts (contd.)
Consider the example
$ bash myscript Invokes the bash shell and then runs the

script using it. Its almost as if we had the line #! /bin/bash in the file myscript. Similarly with the second example using csh. myscript need not be an executable as bash is running the script on its behalf.

7

CSDP399 Introduction to Unix and Programming

12/22/12

Shell scripts (contd.)
Why write shell scripts ?
To avoid repetition:  If you do a sequence of steps with standard Unix commands over and over, why not do it all with just one command?  Or in other words, store all these commands in a file and execute them one by one. To automate difficult tasks:  Many commands have subtle and difficult options

that you don’t want to figure out or remember every time .

8

CSDP399 Introduction to Unix and Programming

12/22/12

Simple Example
Assume that I need to execute the

following commands once in a while when I run out of disk space: rm -rf $HOME/.netscape/cache rm -f $HOME/.netscape/his* rm -f $HOME/.netscape/cookies rm -f $HOME/.netscape/lock rm -f $HOME/.netscape/.nfs* rm -f $HOME/.pine-debug* rm -fr $HOME/nsmail

9

CSDP399 Introduction to Unix and Programming

12/22/12

Simple Example (contd.)
We can put all those commands into a

shell script, called myscript.
[axgopala@nitrogen axgopala]$ cat myscript #! /bin/bash rm -rf $HOME/.netscape/cache rm -f $HOME/.netscape/his* rm -f $HOME/.netscape/cookies rm -f $HOME/.netscape/lock rm -f $HOME/.netscape/.nfs* rm -f $HOME/.pine-debug* rm -fr $HOME/nsmail 10 CSDP399 Introduction to Unix and Programming 12/22/12

Sample Example (contd.)
To run the script:
Step 1:  $ chmod u+x myscript Step 2:
 Run the script:  $ ./myscript

Each line of the script is processed in order.

11

CSDP399 Introduction to Unix and Programming

12/22/12

Shell scripts (contd.)
Shell variables:
Declared by: varname=varvalue To make them an environment variable, we

export it. export varname=varvalue

12

CSDP399 Introduction to Unix and Programming

12/22/12

Shell scripts (contd.)
Assigning the output of a command to a

variable:
Using backquotes, we can assign the output

of a command to a variable:

#! /bin/bash filelist=`ls` echo $filelist

13

CSDP399 Introduction to Unix and...
tracking img