Download presentation
1
A Guide to Unix Using Linux Fourth Edition
Chapter 7 Advanced Shell Programming
2
Objectives Perform program design and analysis using flowcharts and pseudocode Use techniques to ensure a script is employing the correct shell Set the default shell Configure Bash login and logout scripts Set defaults for the vi editor Use the test command for programming functions A Guide to Unix Using Linux, Fourth Edition
3
Objectives (continued)
Format record output Delete records using a script 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 A Guide to Unix Using Linux, Fourth Edition
4
Understanding Program Design and Analysis
Design process: Second step in program development cycle After creating the specifications for program Develop computer program by analyzing best way to achieve desired results Two popular and proven analysis tools: Flowchart Pseudocode A Guide to Unix Using Linux, Fourth Edition
5
Flowcharting Flowchart Logic diagram Uses set of standard symbols
Visually explains sequence of events from start of process to its end point Documents: Processes Procedures Program sequence A Guide to Unix Using Linux, Fourth Edition
6
Flowcharting (continued)
A Guide to Unix Using Linux, Fourth Edition
7
Writing Pseudocode After creating a flowchart, you write pseudocode
Creates a model that you can later use as a basis for a real program Display "What is your favorite vegetable? " on the screen Enter data into veg_name If veg_name is equal to "broccoli" Then Display "Broccoli is a healthy choice." on the screen Else Display "Don’t forget to eat your broccoli also." on the screen End If A Guide to Unix Using Linux, Fourth Edition
8
A Guide to Unix Using Linux, Fourth Edition
9
Ensuring the Correct Shell Runs the Script
UNIX/Linux users can choose their shell of preference To ensure that the correct shell is used to interpret your script: Include command that sets the particular shell to use on the first line of the script #!/bin/bash A Guide to Unix Using Linux, Fourth Edition
10
Setting the Default Shell
Shell set up by default is established by system administrator /etc/passwd file trbrown:x:500:500:Thomas Brown:/home/trbrown:/bin/bash To edit /etc/passwd file: Use vi or Emacs Must be very careful! Make a backup copy first Use a GUI e.g., User Manager tool in GNOME desktop, YaST A Guide to Unix Using Linux, Fourth Edition
11
Setting the Default Shell (continued)
A Guide to Unix Using Linux, Fourth Edition
12
Using Bash Login and Logout Scripts
In Bash, two scripts run when you log in: .bash_profile and .bashrc Edit files with a text editor Unlike .bash_profile, .bashrc is also run each time you start a subshell /etc/.bashrc, /etc/bashrc, or /etc/bash.bashrc files set system defaults Not always available .bash_logout file (in your home directory) executes commands when user logs out A Guide to Unix Using Linux, Fourth Edition
13
Using Bash Login and Logout Scripts (continued)
A Guide to Unix Using Linux, Fourth Edition
14
Setting Defaults for Using the vi Editor
.exrc used to automatically set up vi environment Located in your home directory Example: set number set tabstop=3 set shell=/bin/bash A Guide to Unix Using Linux, Fourth Edition
15
Using the test Command A Guide to Unix Using Linux, Fourth Edition
16
Performing Relational Integer Tests with the test Command
Exit status: numeric value that command returns to OS when it finishes Interpreting exit status for test command: 0 (zero) test result is true 1 test result is false Use echo $? to view most recent exit status A Guide to Unix Using Linux, Fourth Edition
17
Performing Relational Integer Tests with the test Command (continued)
A Guide to Unix Using Linux, Fourth Edition
18
Performing String Tests with the test Command
These tests are useful in scripts to test contents of variables Example: ensure that a variable contains a specific value A Guide to Unix Using Linux, Fourth Edition
19
Testing Files with the test Command
A Guide to Unix Using Linux, Fourth Edition
20
Performing Boolean Tests with the test Command
Boolean operator: logical operator that symbolizes AND, OR, or NOT to evaluate a relationship Result of evaluation is either true or false Examples: test expression1 -a expression2 test expression1 -o expression2 test !expression A Guide to Unix Using Linux, Fourth Edition
21
Formatting Record Output
To format record output, use translate utility, tr Two examples: 1) tr [a-z] [A-Z] < counters Sends contents of counters file as input to tr Then, converts lowercase characters to uppercase 2) cat names | tr ":" " " Sends output of cat to tr Pipes (|) contents of names file to tr tr replaces each occurrence of “:” with a space A Guide to Unix Using Linux, Fourth Edition
22
Deleting Phone Records
sed takes contents of input file and applies actions to file’s contents Actions provided as options and arguments Results are sent to standard output device Simple way to delete a phone record: Use -d option Enter phone number Use sed -d to delete the matching phone number and output to a temporary file, f Confirm acceptance If the output is accepted, copy the temporary file f back to corp_phones (overlaying it) A Guide to Unix Using Linux, Fourth Edition
23
Clearing the Screen A Guide to Unix Using Linux, Fourth Edition
24
Creating an Algorithm to Place the Cursor
Read information into field2 While field2 equals "-" Move cursor to position of previous field, field1 Clear current information displayed in field1 Read new information into field1 If field1 = "q" Then Exit program End If Move cursor to position of field2 End While tput cup 5 18; read lname while test "$lname" = "-" do tput cup 4 18; echo " " tput cup 4 18; read phonenum done A Guide to Unix Using Linux, Fourth Edition
25
Protecting Against Entering Duplicate Data
A program should always check its input to ensure the user has entered acceptable information Input validation A Guide to Unix Using Linux, Fourth Edition
26
A Guide to Unix Using Linux, Fourth Edition
27
Using Shell Functions Shell function: group of commands stored in memory and assigned a name Shell scripts can use function name to execute the commands Use shell functions to isolate reusable code sections Reduce typing and debugging time Example: datenow() { date } A Guide to Unix Using Linux, Fourth Edition
28
Defining a Function from the Command Line
You can define functions from the command line: However, functions are usually stored in script files Loaded into memory when you log in Arguments are passed to functions in the same manner as any other shell procedure: ~]$ datenow() <Enter> > { <Enter> > date <Enter> > } <Enter> ~]$ ~]$ datenow "Today’s date and time are:" Today’s date and time are: Mon Feb 9 21:49:45 MST 2009 A Guide to Unix Using Linux, Fourth Edition
29
Creating Functions Inside Shell Scripts
Example: a shell script called .myfuncs You may start .myfuncs from your .bash_profile or .bashrc login script, or the command line sort_name() { sort -k 2 -t: corp_phones } sort_job() sort -k 6 -t: corp_phones sort_dept() sort -k 5 -t: corp_phones A Guide to Unix Using Linux, Fourth Edition
30
Troubleshooting a Shell Script
Some tips to help you troubleshoot a script: Ensure script has execute permissions Be certain first line of script specifies shell to use Use the sh -n, -v, and -x troubleshooting options Look for typographic errors Look for errors in the use of particular characters ;, ‘, `, ‘’, “”, #, <, > Check for syntax errors in the use of commands Look for the use of command options that are not supported in your distribution of UNIX/Linux Check initial and exit value of looping logic A Guide to Unix Using Linux, Fourth Edition
31
Summary Two most popular and proven analysis tools: flowchart and pseudocode Have the first line in a script file specify the shell Use test to validate the existence of directories and files as well as to compare numeric and string values tr changes characters typed at keyboard sed reads a file as its input and outputs the file’s modified contents Shell functions can make programmer more efficient A Guide to Unix Using Linux, Fourth Edition
32
Command Summary A Guide to Unix Using Linux, Fourth Edition
33
Command Summary (continued)
A Guide to Unix Using Linux, Fourth Edition
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.