Download presentation
Presentation is loading. Please wait.
Published byBrent Webster Modified over 9 years ago
1
Shell Scripting – Putting it All Together
2
Agenda Escaping Characters Wildcards Redirecting Output Chaining and Conditional Chaining Unnamed and Named Replacement Parameters IF statement IF ELSE statement Menus Subroutines and Procedures
3
Escaping Characters The “&” and “|” are special characters to the command interpreter If you wish to use these characters in a text string, they must be “escaped” by using the “^” (caret symbol) For example you want to echo the phrase “Yes & No”
4
Caret Symbol Input & Output By using the ^ symbol the Shell does not interpret the & symbol as a chaining command and thus displays the & as a string
5
Wildcards Most commands allow you to use wildcard characters to handle more than one file at a time. Asterisk (*) – substitutes multiple characters Question Mark (?) – substitutes only 1 character
6
Wildcards Example BUDGET.JANBUDGET.FEBBUDGET.MAR BANK.DOCREPORT12.DOCREPORT2.DOC C:\>dir *.* C:\>dir budget.* C:\>dir b* C:\>dir *.doc C:\>dir budget.?a? C:\>dir report?.doc
7
Redirecting Output You can modify where the output of a command goes By default the output of a commands is generally displayed on the screen You can redirect the output to a file (>, >>) You can redirect the output to be used as input for another command (|)
8
Redirecting Output to a File > - when you redirect output to an existing file, the redirected output replaces the original file >> - you can add, or append to the end of an existing file If the file doesn’t exist, it will be created in either case
9
Examples File1.txt This is file 1. File2.txt This is file 2. C:\>type file1.txt >> file2.txt C:\>type file1.txt > file2.txt C:\>type file1.txt > file3.txt
10
Connecting Commands with a Pipe You can redirect the output of one command to be the input of another. The two commands become connected using a pipe (|). You pipe the output of one command and use it as the input for a filter command. C:\>dir \DOS | more C:\>dir | sort
11
Chaining and Conditional Chaining & - chains two commands together ECHO Unsuccessful & GOTO :EOF && - executes the second command ONLY if the first command was successful COPY *.txt && ECHO Operation Successful || - executes the second command ONLY if the first command was unsuccessful COPY *.txt || ECHO Operation Unsuccessful
12
Replaceable Parameters A replaceable parameter is a “placeholder” for information entered on the command line and inserted by the command interpreter into the script during run time 2 types: Unnamed Replacement Parameters Use %1, %2, %3, %4, %5, %6, %7, %8, %9 Named Replacement Parameters Use a named variable, either e.g. %path% -- a predefined environment variable, or SET [variable]=[value] -- user defined variable
13
Unnamed Replacement Parameters Names are “hardwired” in the script – no flexibility No user input before script runs – no dynamic changes Changes to script must be retyped – thus, error prone
14
Unnamed Replacement Parameters Statements are not “hardwired” – gives flexibility User input on the CLI – allows dynamic changes No retyping of code – thus, less error prone
15
Unnamed Replacement Parameters
16
Using Parameters Requires… Error Entrapment Good programming tests for the existence of parameters and displays a message Documentation and messages Good programming provides the user with correct command syntax
17
Error Entrapment and Documentation
18
Named Replacement Parameters System-wide variables used to store information Two types Environment variables Can only be added, deleted or modified by members of the administrators group user defined Can be added, deleted and modified by members of the users group
19
Environment Variables The environment is an area of memory which the operating system uses as a scratch pad Stores “mission critical” information such as: COMPUTERNAME USERNAME USERPROFILE OS PATH TEMP and TMP + MANY MORE SEE SET
20
Predefined Environment Variables
21
User Defined Variables SET [variable]=[string] used to create a variable SET /P [variable]=prompt[string] Used to capture user input SET /A [variable]=[value] Used to do arithmetic All information stored as text strings, even numbers
22
Named Replacement Parameters
24
GOTO command Use with caution if the label is before the script, you can create an endless loop (unless there is a control to bypass the GOTO) for example
25
GOTO Command On the other hand, if the label is after the GOTO statement, you can skip commands and jump to a new section Execution of the script will continue to the end and you cannot go back to the unexecuted commands unless you use another GOTO
26
GOTO Command Jumps to :Copy and executes the remaining commands
27
4 Types of Conditional Tests IF [NOT]“string1” == “string2” [command] compares two strings for same value IF [NOT] ERRORLEVEL 1 [command] Commands return all values 1 AND above 0 Success 1 Failure 2 execution failure4 math failure IF [NOT]“%ERRORLEVEL%” == “2” [command] Tests for a specific value ONLY IF [NOT] EXIST filename [command] Checks to see if a file is located in that directory To check a directory, add “\.” after the directory name IF [NOT] DEFINED [variable] [command] Tests for the existence of a variable
28
IF and GOTO Example
29
IF ELSE
30
Menu Displaying choices to the user and controlling user selection Branch using a user defined variable Using IF or IF /I to compare strings Branch using ERRORLEVEL Trap the actual key on the keyboard
31
Branching – Using variable
32
Branching – Using Error Level based on ASCII valuesASCII
33
Subroutines and Procedures Normally the “command interpreter” executes scripts line by line starting at the beginning of a file To change the order of execution we use subroutines and procedures Using Subroutines and Procedures helps to organize your code for easier reading and creates “building blocks” of code which can be easily reused
34
Subroutines Are created with the GOTO command The GOTO command creates an unconditional branch to a label A label identifies a location in your script A label is preceded with a colon, ie. :Start The Shell then executes the commands after the label
35
Procedures Are created using the CALL command External Internal The difference between a subroutine and a procedure is how the Shell behaves With procedures execution continues at the designated label, proceeds to the end of the file and then returns to the line following the CALL statement
36
External Procedures 1 2
37
Internal Procedures MyScript.cmd :start cmd1 CALL :Copy :Copy cmd1 cmd2 :Make cmd1 :EOF 1 2 GOTO :EOF
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.