Advanced Shell Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Advanced Shell Programming

Description:

Advanced Shell Programming Objectives Use techniques to ensure a script is employing the correct shell Set the default shell Configure Bash login and logout scripts ... – PowerPoint PPT presentation

Number of Views:191
Avg rating:3.0/5.0
Slides: 36
Provided by: Barbara733
Category:

less

Transcript and Presenter's Notes

Title: Advanced Shell Programming


1
  • Advanced Shell Programming

2
Objectives
  • Use techniques to ensure a script is employing
    the correct shell
  • Set the default shell
  • Configure Bash login and logout scripts

3
Objectives (continued)
  • Set defaults for the vi editor
  • Use the test command for programming functions
  • Format record output
  • Delete records using a script

4
Objectives (continued)
  • Set up a quick screen-clearing technique
  • Create a program algorithm to solve a
    cursor-repositioning problem
  • Develop and test a program to eliminate duplicate
    records
  • Create shell functions and use them in a program

5
Ensuring the Correct Shell Runs the Script
  • Each UNIX/Linux user can choose which shell they
    use by default
  • Ensure the correct shell is used to run a script
  • Not all shells support the same commands and
    programming statements
  • The first line of a script should specify which
    shell to use

6
Setting the Default Shell
  • System administrator establishes the default
    shell for a user account
  • In /etc/passwd file
  • File can only be edited (carefully!) by system
    administrator
  • Some systems provide management software to
    assist in setting default shells

7
Using Bash Login and Logout Scripts
  • When Bash is your default shell, scripts run
    automatically upon login or re-entry
  • .bash_profile
  • .bashrc (also runs in a subshell)
  • Administrator controls /etc/bashrc and
    /etc/profile
  • .bash_logout runs when user logs out
  • Often used to clear the screen

8
Using Bash Login and Logout Scripts (continued)
9
Setting Defaults for Using the vi Editor
  • To use the vi editor for code development,
    configure .exrc in your home directory
  • Automatically sets up the vi environment
  • Set the number of tab spaces to use when nesting
    lines of code
  • Display line numbers

10
Using the test Command
  • Place the test command inside the shell script or
    execute it directly from the command line
  • Some uses of the test command are
  • Perform relational tests with integers
  • Test strings
  • Determine if a file or directory exists and what
    type of file it is
  • Perform Boolean tests

11
Performing Relational Integer Tests with the test
Command
The test command returns an exit status that
indicates the result of the test 0 (zero) if
true and 1 (one) if false
12
Performing Relational Integer Tests with the test
Command (continued)
13
Performing String Tests with the test Command
14
Testing Files with the test Command
15
Performing Boolean Tests with the test Command
AND returns true (0) if both expressions are
true, otherwise returns false (1) OR returns
true if either expression is true, otherwise if
neither is true, returns false ! negates the
value of the expression
16
Using the test Command
17
Formatting Record Output
  • Record output is formatted using the
    translateutility (tr)
  • Use tr to
  • Change the characters typed at the keyboard,
    character by character
  • Work as a filter when the input comes from the
    output of another UNIX/Linux command
  • Redirect standard input to come from a file
    rather than the keyboard

18
Formatting Record Output
tr was used to change lowercase characters to
uppercase and replace colon characters with spaces
19
Deleting Phone Records
  • The sed command
  • Takes the contents of an input file and applies
    specific actions to the files contents
  • Sends results to standard output
  • The -d option of sed can be used to delete
    matching records from the output

20
Deleting Phone Records
The sed command is behind the delete option
21
Deleting Phone Records
The record is no longer in the file
22
Clearing the Screen
  • The clear command is useful for clearing the
    screen, but there is a faster way
  • Store the output of the clear command in a
    variable and then echo the contents of the
    variable on the screen
  • About ten times faster than the actual command
    since the system does not have to locate and
    execute the clear command

23
Clearing the Screen (continued)
24
Creating an Algorithm to Place the Cursor
  • To correct data entered into a previous data
    entry field, move the cursor back to the
    erroneous field
  • If a user enters a minus and hits enter, the
    cursor is repositioned at the start of the
    previous field
  • To accomplish this, the first step is to create a
    program algorithm

25
Creating an Algorithm to Place the Cursor
(continued)
  • An algorithm is a sequence of commands or
    instructions that produces a desired result
  • A good practice for creating an algorithm is to
    develop both the logic shown in a flowchart and
    the conditions necessary to carry out the logic
    described in the pseudocode

26
Creating Program Algorithms
Incorrect information has been entered by the user
27
Creating Program Algorithms (continued)
The algorithm has encountered a minus sign and
moved the cursor to the previous field
28
Protecting Against EnteringDuplicate Data
  • Input validation is necessary because users dont
    always enter valid data
  • Programs should always check to ensure that users
    enter acceptable information

29
Protecting Against EnteringDuplicate Data
(continued)
30
Protecting Against EnteringDuplicate Data
(continued)
The phoneadd program now does input validation
31
Using Shell Functions
  • A shell function is a group of commands stored in
    memory and assigned a name
  • Shell scripts can use function names to execute
    the commands
  • Shell functions isolate reusable code sections
    no need to duplicate the same algorithm
    throughout your program

32
Defining a Function from the Command Line
  • To enter a function from the command line
  • Enter the name of the function
  • Enter internal code in brackets
  • Shell will prompt with a gt for next line until
    closing bracket is entered
  • Arguments are positional (1 - 9)

33
Creating Functions Inside Shell Scripts
  • Creating a function inside a shell script
    supports code reuse
  • Functions can be automatically loaded or defined
    upon login using .bashrc or .bash_profile scripts

34
Summary
  • Use the first line in a script to tell the OS
    which shell to use with the script
  • test command validates the existence of
    directories and files and compares numeric and
    string values
  • sed reads a file as its input and outputs the
    files modified content

35
Summary (continued)
  • translate (tr) changes characters typed at the
    keyboard and filters input from the output of
    another UNIX/Linux command
  • To speed clearing the screen, assign the output
    of the clear command to the shell variable CLEAR
  • Algorithm a sequence of instructions or commands
    that produces a desired result
  • Shell functions can isolate program code to be
    reused in multiple programs
Write a Comment
User Comments (0)
About PowerShow.com