Open main menu

CDOT Wiki β

Changes

Tutorial 10 - Shell Scripting - Part 1

4,263 bytes added, 13:36, 14 November 2021
INVESTIGATION 1: CREATING A SHELL SCRIPT
= INVESTIGATION 1: CREATING A SHELL SCRIPT =
<span style="color:red;">'''ATTENTION''': The due date for successfully completing this tutorial (i.e. tutorial 8) is by Friday, December 15 @ 11:59 PM (Week 14).</span><br>
 
In this investigation, you will learn how to create and run a '''Bash Shell script'''.
 
 
'''Perform the Following Steps:'''
 
# '''Login''' to your matrix account.<br><br>
# Issue a command to '''confirm''' you are located in your '''home''' directory.<br><br>We want to create a Bash Shell script to welcome the user by their ''username''.<br>Let's first look at selecting an appropriate filename for your shell script.<br><br>
# Issue the following linux command to check if the filename called '''hello'''<br>already exists as a command:<br><span style="color:blue;font-weight:bold;font-family:courier;">which hello</span><br><br>The output from this command should indicate that the shell did NOT<br>find any directories that contained this filename that could represent<br>a command; therefore, this shell script name CAN be used.<br><br>[[Image:hello0.png|thumb|right|200px|Using a '''text editor''' to add Linux commands in to the '''hello''' shell script.]]
# Use a '''text editor''' like '''vi''' or '''nano''' to create the text file called '''hello'''<br><br>
# Enter the following two lines in your shell script:<br><span style="font-family:courier;font-weight:bold;">echo<br>echo "Hello $USER"<br>echo</span><br><br>'''NOTE:''' The variable called '''USER''' is an '''environment variable''' that contains the <u>current</u> user's login name. If you wanted to share your shell script with other users, when they run the shell script, they will greeted by <u>their</u> username. ''Environment variables'' make your shell script adaptable by ALL users.<br><br>
# '''Save''' your editing session and '''exit''' the text editor.<br><br>Instead of issuing the '''bash''' command followed by your shell script pathname as an ''argument'',<br>let's simply run it by its filename. This is the most common method of running shell scripts.<br><br><table align="right"><tr valign="top"><td>[[Image:no-execute.png|thumb|right|230px|An '''error message''' will appear when trying to run a shell script by name that does NOT have '''execute''' permissions.]]</td><td>[[Image:hello1.png|thumb|right|150px|Output from running your '''hello''' shell script (YourUserID representing <u>your</u> username).]]</td></table>
# Issue the following linux command to run your shell script in your current directory:<br><span style="color:blue;font-weight:bold;font-family:courier;">./hello</span><br><br>You should notice an '''ERROR message''' indicating you don't have permissions to run the file. To fix this, you need to<br>'''add execute permissions''' prior to running the shell script.<br><br>
# Issue the following linux command to '''add'''<br>execute permissions for your shell script:<br><span style="color:blue;font-weight:bold;font-family:courier;">chmod u+x hello</span><br><br>
# Issue the following to run your shell script:<br><span style="color:blue;font-weight:bold;font-family:courier;">./hello</span><br><br>Did your shell script run?<br><br><span style="color:red;">'''ATTENTION:''' Students might get FRUSTRATED when performing their '''assignment 3''' when their Bash shell scripts have errors.<br>One major cause is the the OUTPUT of their Bash shell script when run does not '''EXACTLY match''' the required output<br>for the '''correct''' Bash shell script.<br><br>This requires that you CAREFULLY '''read''' the requirements of your Bash shell script and create it to the EXACT specifications</span><br><br>
# Issue the following Linux command to run a checking script:<br><span style="color:blue;font-weight:bold;font-family:courier;">~osl640/week10-check-1</span><br><br>
# If you encounter errors, make corrections and '''re-run''' the checking script until you<br>receive a congratulations message, then you can proceed.<br><br>
::In the next investigation, you will learn to create and run shell scripts that<br >use '''variables''', '''positional''' and '''special parameters'''. You will also learn how to<br><u>add</u> a '''she-bang line''' at the top of a shell script to force it to run in a specified shell.<br><br>Proceed to the next investigation.<br><br>
= INVESTIGATION 2: USING VARIABLES IN SHELL SCRIPTS =