Open main menu

CDOT Wiki β

Changes

Tutorial12: Shell Scripting - Part 2

745 bytes added, 14:58, 29 December 2020
INVESTIGATION 2: ADDITIONAL LOOPING STATEMENTS
# Enter the following lines in your shell script:<br><span style="color:blue;font-weight:bold;font-family:courier;"><br>#!/bin/bash<br>value=1<br>while [ $value -le 5 ]<br>do<br>&nbsp;&nbsp;echo "$value"<br>&nbsp;&nbsp;value=value+1<br>done<br></span><br>
# Save your editing session and exit the text editor (eg. with vi: press '''ESC''', then type ''':wx''' followed by '''ENTER''').<br><br>
# Set execute permissions for this shell script and run your shell script by issuing: <span style="color:blue;font-weight:bold;font-family:courier;">./for-6.bash</span><br><br>What do you notice? You should have noticed an error message.<br><br>In our lesson# To demonstrate what went wrong, we mentioned issue the following commands:<br><br><span style="color:blue;font-weight:bold;font-family:courier;">num1=5;num2=10<br>result=$num1+$num2<br>echo $result<br><br></span><br><br>Notice that values in the user-defined variables are stored as '''TEXT'''variable stores the text "10+5" which is <u>NOT</u> the expected result of adding the number 10 and 5.<br>Therefore<br>As you may recall in class, we need to convert a number stored as text into a '''binary number''' for calculations (in this case, advance the value by 1 for each loop). We can accomplish this by either using the expr command, or by surrounding our math operation within a set of two round brackets.<br><br># To demonstrate, issue the following set of commands:<br><br><span style="color:blue;font-weight:bold;font-family:courier;">num1=5;num2=10<br>result=$( expr $num1+$num2)<br>echo $result<br><br>((result=$num1+$num2))<br>echo $result</span><br><br>Let's apply this technique we just learned to correct our recently created shell script.<br><br>
# Use a text editor like vi or nano to edit the text file called '''for-6.bash''' (eg. <span style="color:blue;font-weight:bold;font-family:courier;">vi for-6.bash</span>)<br>If you are using the nano text editor, refer to notes on text editing in a previous week in the course schedule.<br><br>
# Change line 6 to the following:<br><span style="color:blue;font-family:courier;font-weight:bold;">((value=value+1))</span><br><br>
13,420
edits