Changes

Jump to: navigation, search

Tutorial10: Shell Scripting - Part 1

18 bytes added, 15:38, 16 March 2021
INVESTIGATION 4: CONTROL FLOW STATEMENTS
# Copy and paste the following (correct) '''test''' command:<br><span style="color:blue;font-weight:bold;font-family:courier;">&#91; $number1 -gt $number2 &#93;</span><br><br>
# Issue a command to view the value of the '''exit status''' of the previously issued '''test''' command.<br>You should notice that is works properly.<br><br>Now that we have learned how to test conditions, let's learn about '''control-flow''' statements.<br><br>'''LOGIC STATEMENTS''' are used to create '''different paths''' or directions that the shell script will take<br>based on the <u>result</u> of the '''test condition'''. In this tutorial,we will only focus on the '''if''' and '''if-else''' logic statements.<br><br>
# Use a text editor like vi or nano to create the text file called '''if-1.bash''' <br>(eg. <span style="color:blue;font-weight:bold;font-family:courier;">vi if-1.bash</span>)<br><br>
# Enter the following lines in your shell script:<br><span style="font-family:courier;font-weight:bold;">#!/bin/bash<br>num1=5<br>num2=10<br>if [ $num1 -lt $num2 ]<br>then<br>&nbsp;&nbsp;&nbsp;echo "num1 is less than num2"<br>fi</span><br><br>
# Save your editing session and exit the text editor<br>(eg. with vi: press '''ESC''', then type ''':wx''' followed by '''ENTER''').<br><br>[[Image:if-1.png|thumb|right|200px|Output of a shell script using the '''if''' control-flow statement.]]
# Issue the following Linux command to add execute permissions for your shell script:<br><span style="color:blue;font-weight:bold;font-family:courier;">chmod u+x if-1.bash</span><br><br>
# Run your shell script by issuing:<br><span style="color:blue;font-weight:bold;font-family:courier;">./if-1.bash</span><br><br>Confirm that the output indicates a correct result.<br><br>
# Use a text editor like vi or nano to create the text file called '''if-2.bash''' <br>(eg. <span style="color:blue;font-weight:bold;font-family:courier;">vi if-2.bash</span>)<br><br>
# Enter the following lines in your shell script:<br><span style="font-family:courier;font-weight:bold;">#!/bin/bash<br>read -p "Enter the first number: " num1<br>read -p "Enter the second number: " num2<br>if [ $num1 -gt $num2 ]<br>then<br>&nbsp;&nbsp;&nbsp;echo "The first number is greater than the second number."<br>fi</span><br><br>
# Save your editing session and exit the text editor<br>(eg. with vi: press '''ESC''', then type ''':wx''' followed by '''ENTER''').<br><br>[[Image:if-2.png|thumb|right|320px|Output of a shell script using the '''read''' command and the '''if''' control-flow statement.]]
# Run your shell script by issuing:<br><span style="color:blue;font-weight:bold;font-family:courier;">./if-2.bash</span><br><br>When prompted, make certain that the '''first number'''<br>is <u>greater than</u> the '''second number'''. What happens?<br><br>
# Run the <span style="font-weight:bold;font-family:courier;">./if-2.bash</span> Bash shell script again.<br><br> When prompted, make certain that the '''first number'''<br>is <u>less than or equal to</u> the '''second number'''. What happens?<br><br>Let's use an '''if-else''' statement to provide an '''alternative'''<br>if the first number is less than or equal to the second number.<br><br>
# Use a text editor like vi or nano to create the text file called '''if-3.bash''' <br>(eg. <span style="color:blue;font-weight:bold;font-family:courier;">vi if-3.bash</span>)<br><br>
# Enter the following lines in your shell script:<br><span style="font-family:courier;font-weight:bold">#!/bin/bash<br>read -p "Enter the first number: " num1<br>read -p "Enter the second number: " num2<br>if [ $num1 -gt $num2 ]<br>then<br>&nbsp;&nbsp;&nbsp;echo "The first number is greater than the second number."<br>else<br>&nbsp;&nbsp;&nbsp;echo "The first number is less than or equal to the second number."<br>fi</span><br><br>[[Image:if-3.png|thumb|right|330px|Output of a shell script using the '''if-else''' control-flow statement.]]
# Save your editing session and exit the text editor<br>(eg. with vi: press '''ESC''', then type ''':wx''' followed by '''ENTER''').<br><br>
# Use a text editor like vi or nano to create the text file called '''for-1.bash'''<br>(eg. <span style="color:blue;font-weight:bold;font-family:courier;">vi for-1.bash</span>)<br><br>
# Enter the following lines in your shell script:<br><span style="font-family:courier;font-weight:bold;">#!/bin/bash<br>echo<br>for x in 5 4 3 2 1<br>do<br>&nbsp;&nbsp;&nbsp;echo $x<br>done<br>echo "blast-off!"<br>echo</span><br><br>
# Save your editing session and exit the text editor <br>(eg. with vi: press '''ESC''', then type ''':wx''' followed by '''ENTER''').<br><br>[[Image:for-1.png|thumb|right|125px|Output of a shell script using the '''for''' loop with a '''list'''.]]
# Issue the following Linux command to add execute permissions for your shell script:<br><span style="color:blue;font-weight:bold;font-family:courier;">chmod u+x for-1.bash</span><br><br>
# Run your shell script by issuing:<br><span style="color:blue;font-weight:bold;font-family:courier;">./for-1.bash</span><br><br>
# Use a text editor like vi or nano to create the text file called '''for-2.bash''' <br>(eg. <span style="color:blue;font-weight:bold;font-family:courier;">vi for-2.bash</span>)<br><br>
# Enter the following lines in your shell script:<br><span style="font-family:courier;font-weight:bold;">#!/bin/bash<br>echo<br>for x<br>do<br>&nbsp;&nbsp;&nbsp;echo $x<br>done<br>echo "blast-off!"<br>echo</span><br><br>
# Save your editing session and exit the text editor <br>(eg. with vi: press '''ESC''', then type ''':wx''' followed by '''ENTER''').<br><br>
# Issue the following Linux command to add execute permissions for your shell script:<br><span style="color:blue;font-weight:bold;font-family:courier;">chmod u+x for-2.bash</span><br><br>[[Image:for-2.png|thumb|right|175px|Output of a shell script using the '''for''' loop <u>without</u> a '''list'''.]]
# Run your shell script by issuing:<br><span style="color:blue;font-weight:bold;font-family:courier;">./for-2.bash 10 9 8 7 6 5 4 3 2 1</span><br><br>How does this differ from the previous shell script?<br><br>You will learn in a couple of weeks more examples of using loop statements.<br><br>Let's run a '''checking-script''' to confirm that both your '''for-1.bash''' and '''for-2.bash'''<br><br>
13,420
edits

Navigation menu