Shell Scripting by h8NWL2


									Introduction to Shell
Script Programming

• Understand the program development cycle
• Compare UNIX/Linux shells for creating scripts
• Use shell variables, operators, and wildcard

           Objectives (continued)

• Use shell logic structures
• Employ shell scripting to create a menu
• Use commands to help debug shell scripts

           Objectives (continued)

• Explain ways to customize your personal
• Use the trap command

         Previewing the Application

• Shell scripts can be used to customize your
• Will develop a simulated employee information
  system using shell scripts
• Will gain experience with shell variables, shell script
  operators, and logic structures

    The Program Development Cycle

• The program development cycle is the process of
  developing an application
   – First step is to create program specifications
   – Second step is to create the program design
   – Third step is developing the code, which is
     written, tested, and debugged

The Program Development Cycle

        Using High-Level Languages

• High-level languages are computer languages that use
  English-like expressions
• Examples are; COBOL, C, C++
• High-level language statements are stored in a source
  file, which programmers create using an editor

       Using High-Level Languages

• High-level source files must be converted into a low-level
  machine language file
• A compiler is a program that converts source files into
  executable machine-language files
• If a source file contains syntax errors, it cannot be
  converted into an executable file
   – A programmer must correct these errors before the
      program can be run

      Using UNIX/Linux Shell Scripts

• Unlike high-level language programs, shell scripts do not
  have to be converted into machine language
• The UNIX/Linux shell acts as an interpreter when
  reading script files
• Interpreters read statements in script files and
  immediately translate them into executable instructions
  and run them

       Using UNIX/Linux Shell Scripts
• After creating shell script, the OS is instructed that the
  file is an executable shell script via the chmod 755
• Script files can be run in several ways:
   – Set the path variable and type the script name at the
      command prompt
   – Type ./filename if script is in current directory
   – Type the script name preceded by the full path

          Prototyping an Application

• A prototype is a running model of your application
   – Less detail, less design time than a full application
   – Shows potential without full programming effort
• Shell scripts can be used to prototype applications that
  will later be moved to compiled languages

               Using Comments

• Comments are important!
• Provide useful documentation to both the programmer
  and to others who need to understand or debug the code
• To use, start comment line with a #

           The Programming Shell

All Linux versions use the Bash shell as the default
• Variables are symbolic names that represent values
  stored in memory
• Three types of variables:
   – Configuration variables store information about
     the setup of the OS
   – Environment variables hold information about
     your login session
   – Shell variables are created at the command
     prompt or in shell scripts and are used to
     temporarily store information

      Environment and Configuration
• Environment and configuration variables can be used to
  set up and personalize your sessions
• The printenv command shows current environment and
  configuration variables

Environment and Configuration
     Variables (continued)

                      Use the printenv
                      variable to see a
                      list of environment

Environment and Configuration
     Variables (continued)

Environment and Configuration
     Variables (continued)

Environment and Configuration
     Variables (continued)

Environment and Configuration
     Variables (continued)

                 Shell Variables

• Variables that you can define and manipulate for use
  with program commands in a shell
• Observe basic guidelines for handling and naming shell

                  Shell Operators

• Bash shell operators are in four groups:
   – Defining
   – Evaluating
   – Arithmetic
   – Redirection

                Defining Operators

•   Used to assign a value to a variable
•   Most common is = (equal sign)
•   Use quotation marks with strings
•   Backquote says execute the command inside the
    backquotes and store the result in the variable

             Evaluating Operators

• Used for determining the contents of a variable
• echo $variablename will show the value of variablename
• Double quotes can be used, but not single quotes

Arithmetic Operators

     Arithmetic Operators (continued)

• Regular mathematical precedence rules apply to
  arithmetic operators

 To store arithmetic
 values in a variable,
 use let statement

             Redirection Operators

• The > redirection operator overwrites an existing file
• -o noclobber option of set command will prevent

      Exporting Shell Variables to the
• Shell scripts cannot automatically access variables
  created and assigned
   – On the command line
   – By other scripts
• Make variables global in your environment by using the
  export command

        Modifying the PATH Variable

• PATH variable controls where your shell will look for
  shell scripts
• You can add directories to your PATH
   – Special directories for scripts
   – Your current working directory

    More About Wildcard Characters
• Shell scripts often use wildcard characters
• Wildcard characters are called glob characters and
  are a part of glob patterns
• Glob patterns are intended to match filenames and
   – Question mark (?) matches one character
   – Asterisk (*) matches zero or more characters
   – [chars] defines a class of characters, the glob
     pattern matches any character in the class

            Shell Logic Structures

• Four basic logic structures needed for program
  development are:
   – Sequential logic
   – Decision logic
   – Looping logic
   – Case logic

                 Sequential Logic

• Commands are executed in the order in which they
  appear in the script or program
• The only break in this sequence comes when a branch
  instruction changes the flow of execution by redirecting
  to another location in the script or program
• Used for simple, straightforward command sequences

                  Decision Logic

• Enables your script or program to execute a statement or
  series of statements only if a certain condition exists
• In many cases, the condition depends upon the result of
  a command or on a comparison
• The if statement is the primary decision-making control
  structure in this type of logic

                   Looping Logic

• A control structure repeats until some condition exists or
  some action occurs
• Two common looping mechanisms:
   – for loops cycle through a range of values until the last
     in a set of values is reached
   – The while loop cycles as long as a particular condition

Looping Logic (continued)

                   The for loop repeats
                   for however many
                   values there are in
                   the specified set of

          Looping Logic (continued)

• Program control structures can be entered from the
  command line
• Wildcard characters can be used in loops
• The while loop is set up to test repeatedly for a matching
• The while loop is used when code must be repeatedly
  executed an undetermined number of times

                     Case Logic

• The case logic structure simplifies the selection from a
  list of choices
• It allows the script to perform one of many actions,
  depending on the value of a variable
• Two semicolons (;;) terminate the actions taken after the
  case matches what is being tested

Using Shell Scripting to Create a Menu

• Often useful to create a menu that branches to
  specific shell scripts
• The tput command is useful when creating menus
• Can initialize the terminal display to place text and
  prompts in specific locations and respond to the

         Debugging a Shell Script
• A shell script will not execute if there is an error
  in one or more commands
• Running a shell script using sh enables quick
  debugging of problems
   – sh -v option displays lines of code in the script
     as they are read by the interpreter
   – sh -x option displays the command and its
     arguments line by line as they are run

              Customizing Your
            Personal Environment
• When programming and shell scripting, customizing
  your environment by modifying the initial settings in
  the login scripts provides many benefits
• Login scripts run just after logging in
• Setting up personal bin directories and modify editor
  defaults are common customizations

Customizing Your Personal Environment
• An alias is a name that represents another
• The .bashrc file in your home directory is used to
  establish customizations that take effect at each
• The .bashrc script is executed each time a shell is
  generated, such as when shell scripts are run

             The trap Command
• The trap command causes a shell program to
  automatically remove temporary files created when
  shell scripts run
• Programmers often set up a subdirectory to store
  temporary files, and when a script file exits, trap
  removes the files
• Having files removed from a temporary directory like
  this is considered “good housekeeping”

Putting It All Together in an Application
• Applications require you to:
   – Assign and manage variables
   – Use shell operators
   – Employ shell logic structures
   – Use additional wildcard characters
   – Use tput for managing screen initialization
   – Use trap to clean up temporary files

• A high-level language uses English-like
  expressions and must be converted into a low-
  level language before being executed
• The shell interprets shell scripts
• Linux shells are derived from the UNIX Bourne,
  Korn and C shells, and bash is the default

           Summary (continued)
• UNIX/Linux uses three types of variables:
  configuration, environment, and shell
• Shell operators include defining, evaluating,
  arithmetic, and redirection
• Wildcard characters are used in shell scripts
• The logic structures supported are: sequential,
  decision, looping and case

          Summary (continued)
• The tput command manages cursor placement on
  the screen
• Programmers and system administrators often
  customize the .bashrc file
• Aliases simplify common commands can be
  entered into the .bashrc
• Use the trap command to remove temporary files
  after the script exits


To top