Difference between revisions of "Tutorial 12 - Shell Scripting - Part 2"

From CDOT Wiki
Jump to: navigation, search
(INVESTIGATION 1: ADDITIONAL LOGIC STATEMENTS)
(INVESTIGATION 2: ADDITIONAL LOOPING STATEMENTS)
Line 160: Line 160:
  
 
= INVESTIGATION 2: ADDITIONAL LOOPING STATEMENTS =
 
= INVESTIGATION 2: ADDITIONAL LOOPING STATEMENTS =
 +
In this investigation, you will learn more about the '''for''' loop<br>and learn how to use the '''while''' loop for '''error-checking'''.
 +
 +
 +
'''Perform the Following Steps:'''
 +
 +
# Issue a Linux command to <u>confirm</u> you are located in your '''advanced''' directory in your Matrix account.<br><br>
 +
# Issue the following Linux command to view the <span style="font-family:courier;font-weight:bold;">~/for-1.bash</span> file:<br><span style="color:blue;font-weight:bold;font-family:courier;">more ~/for-1.bash</span>)<br><br>As you should have noticed from '''tutorial 10''' that the '''for''' loop can use a '''list'''.<br>You can also use the for loop with positional parameters stored as '''arguments'''<br>from an executed shell script.<br><br>You can also use the '''for''' loop with a list using '''command substitution'''.<br>Using command sustitution is an effective method to loop within a shell script.<br><br>Before creating a new shell script, let's learn to use command substitution from the Bash Shell<br>to store arguments as positional parameters and use them for practice.<br><br>
 +
# Issue the following linux command to set positional parameters in your current shell:<br><span style="color:blue;font-weight:bold;font-family:courier;">set apples oranges bananas pears</span><br><br>
 +
# Issue the following linux command:<br><span style="color:blue;font-weight:bold;font-family:courier;">echo $#</span><br><br>What do you notice? What does this value represent?<br><br>
 +
# Issue the following linux command:<br><span style="color:blue;font-weight:bold;font-family:courier;">echo $*</span><br><br>What do you notice?<br><br>These positional parameters can be used with a for loop. To simplify things,<br>let's create another shell script that uses '''command substitution''' within a '''for''' loop.<br><br>
 +
# Use a text editor like vi or nano to create the text file called '''for-3.bash''' (eg. <span style="color:blue;font-weight:bold;font-family:courier;">vi for-3.bash</span>)<br>
 +
# Enter the following lines in your shell script:<br><span style="font-family:courier;font-weight:bold;">#!/bin/bash<br>clear<br>set 10 9 8 7 6 5 4 3 2 1<br>for x<br>do<br>&nbsp;&nbsp;&nbsp;echo $x<br>done<br>echo "blast-off!"</span><br><br>
 +
# Save your editing session and exit the text editor (eg. with vi: press '''ESC''', then type ''':x''' followed by '''ENTER''').<br><br>
 +
# '''Add execute permissions''' for the owner of this script and '''run this Bash shell script'''.<br><br>What do you notice?<br><br>Let's create another shell script to '''run a loop for each file''' that is contained in your current directory using '''command substitution'''.<br><br>
 +
# Use a text editor like vi or nano to create the text file called '''for-4.bash''' (eg. <span style="color:blue;font-weight:bold;font-family:courier;">vi for-4.bash</span>)<br><br>
 +
# Enter the following lines in your shell script:<br><span style="font-family:courier;font-weight:bold;">#!/bin/bash<br>clear<br>set $(ls)<br>echo "Here are files in my current directory:"<br>echo<br>for x<br>do<br>&nbsp;&nbsp;&nbsp;echo " &nbsp;&nbsp;&nbsp;$x"<br>done</span><br><br>
 +
# Save your editing session and exit the text editor (eg. with vi: press '''ESC''', then type ''':x''' followed by '''ENTER''').<br><br>
 +
# '''Add execute permissions''' and '''run''' this Bash shell script.<br><br>What do you notice?<br><br>We can reduce a line in our shell script by using '''command substitution''' in the for loop instead of using<br>the '''set''' command. Let's demonstrate this in another shell script.<br><br>
 +
# Use a text editor like vi or nano to create the text file called '''for-5.bash''' (eg. <span style="color:blue;font-weight:bold;font-family:courier;">vi for-5.bash</span>)<br><br>
 +
# Enter the following lines in your shell script:<br><span style="font-family:courier;font-weight:bold;">#!/bin/bash<br>clear<br>echo "Here are files in my current directory:"<br>echo<br>for x in $(ls)<br>do<br>&nbsp;&nbsp;&nbsp;echo " &nbsp;&nbsp;&nbsp;$x"<br>done<br></span><br>
 +
# Save your editing session and exit the text editor (eg. with vi: press '''ESC''', then type ''':x''' followed by '''ENTER''').<br><br>
 +
# '''Add execute permissions''' for this shell script and '''run Bash shell script'''<br>What do you notice? Does the output for this shell script differ from '''for-4.bash'''? Why?<br><br>We now want to introduce you to the use of '''error-checking'''.<br><br>
 +
# Use the '''more''' command to view the previously-created Bash shell script '''~/if-5.bash''' (eg. <span style="color:blue;font-weight:bold;font-family:courier;">more ~/if-5.bash</span>)<br><br>Take a few moments to re-familiarize yourself with this shell script<br><br>
 +
# Run your shell script by issuing: <span style="color:blue;font-weight:bold;font-family:courier;">~/if-5.bash </span><br><br>When prompted, enter a '''letter''' <u>instead</u> of a ''number''. What happens?<br><br>Let's edit the '''for-5.bash''' shell script to perform '''error-checking''' to <u>force</u> the user to enter a numeric value between '''0''' and '''100'''.<br><br>'''NOTE:''' The '''while''' statement can be used with the '''test''' command (or a simple linux command or a linux pipeline command) for error checking. In our case, we will use a pipeline command with extended regular expressions. In order to loop while the result is TRUE (not FALSE), you can use the negation symbol (!) to set the test condition to the opposite.<br><br>
 +
# Use a text editor like vi or nano to edit the text file called '''~/if-5.bash''' (eg. <span style="color:blue;font-weight:bold;font-family:courier;">vi ~/if-5.bash</span>)<br><br>
 +
# Add the following lines in your shell script <u>IMMEDIATELY AFTER</u> the read statement to prompt the user for a mark:<br><span style="font-family:courier;font-weight:bold;">while ! echo $mark | egrep "^[0-9]{1,}$" > /dev/null 2> /dev/null<br>do<br> &nbsp;&nbsp;&nbsp;read -p "Not a valid number. Enter a mark (0-100): " mark<br>done</span><br><br>
 +
# Save your editing session and exit the text editor (eg. with vi: press '''ESC''', then type ''':x''' followed by '''ENTER''').<br><br>
 +
# Run your shell script by issuing:<br><span style="color:blue;font-weight:bold;font-family:courier;">./if-5.bash</span><br><br>
 +
# When prompted, enter a '''letter''' <u>instead</u> of a ''number''. What happens?<br>Does the shell script allow you to enter an invalid grade like '''200''' or '''-6'''?<br><br>Let's add an '''additional error-checking loop''' to force the user to enter a number between '''0''' and '''100'''.<br><br>Compound operators like '''&&''' and '''||''' can be used with the '''test''' command.<br>Let's use the '''||''' compound criteria to to NOT accept numbers '''outside''' of the range '''0''' to '''100'''.<br><br>
 +
# Use a text editor like vi or nano to edit the text file called '''~/if-5.bash''' (eg. <span style="color:blue;font-weight:bold;font-family:courier;">vi ~/if-5.bash</span>)<br><br>
 +
# Add the following lines in your shell script <u>IMMEDIATELY AFTER</u> the PREVIOUSLY ADDED<br>error-checking '''while''' loop statement to '''force''' the user to enter a valid number (between 1 and 100):<br><span style="font-family:courier;font-weight:bold;">while [ $mark -lt 0 ] || [ $mark -gt 100 ]<br>do<br> &nbsp;&nbsp;&nbsp;read -p "Invalid number range. Enter a mark (0-100): " mark<br>done</span><br><br>
 +
# Save your editing session and exit the text editor (eg. with vi: press '''ESC''', then type ''':x''' followed by '''ENTER''').<br><br>
 +
# Run your shell script by issuing:<br><span style="color:blue;font-weight:bold;font-family:courier;">~/if-5.bash</span><br><br>
 +
# When prompted, enter a '''letter''' <u>instead</u> of a ''number''. What happens?<br>Does the shell script allow you to enter an '''invalid grade''' like '''200''' or '''-6'''?<br><br>Let's reinforce '''math operations''' in a shell script (that you created in '''tutorial 10''') and then incorporate math operations within a loop.<br><br>
 +
# Use a text editor like vi or nano to create the text file called '''for-6.bash''' (eg. <span style="color:blue;font-weight:bold;font-family:courier;">vi for-6.bash</span>)<br><br>
 +
# Enter the following lines in your shell script:<br><span style="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 ''':x''' 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>'''You should have noticed an error message'''.<br><br>
 +
# To demonstrate what went wrong, <u>issue</u> 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>Notice that the user-defined variable stores the text "'''10+5'''" which is <u>NOT</u> the expected result of adding the number '''10''' and '''5'''.<br><br>As you may recall in '''tutorial 10''', we need to convert a number stored as text into a '''binary number'''<br>for calculations (in this case, advance the value by 1 for each loop).<br>We can accomplish this by using the math construct '''(( ))'''<br><br>
 +
# To demonstrate, <u>issue</u> the following set of '''commands''':<br><br><span style="color:blue;font-weight:bold;font-family:courier;">num1=5;num2=10<br>sum=$(($num1+$num2))<br>echo $sum<br><br>((product=$num1*$num2))<br>echo $product</span><br><br>Let's correct our '''for-6.bash''' shell script to correctly use math operations.<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><br>
 +
# Edit '''line 6''' and replace with the following:<br><span style="font-family:courier;font-weight:bold;">((value=value+1))</span><br><br>'''Note:''' For those familiar with other programming languages, you can achieve the same results by using: '''((value++))'''<br><br>
 +
# Save your editing session and exit the text editor (eg. with vi: press '''ESC''', then type ''':x''' followed by '''ENTER''').<br><br>
 +
# '''Run''' this Bash shell script again.<br><br>What do you notice this time? <br><br>
 +
# Issue the following to run a checking script:<br><span style="color:blue;font-weight:bold;font-family:courier;">~osl640/week12-check-2</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 use the '''exit''' statement to '''terminate the execution of a shell script'''<br>if not run with the properly number of arguments and use the '''break''' statement that will '''terminate a loop'''<br>but NOT terminate the running of the shell script.
  
 
= INVESTIGATION 3: USING STARTUP FILES =
 
= INVESTIGATION 3: USING STARTUP FILES =
  
 
= LINUX PRACTICE QUESTIONS =
 
= LINUX PRACTICE QUESTIONS =

Revision as of 14:07, 14 November 2021

Content under development

ADDITIONAL SHELL SCRIPTING

Main Objectives of this Practice Tutorial

  • Use the if-elif-else control flow statement in a shell script.
  • Use the for loop control using a list with command substitution.
  • Use the while loop in a shell script.
  • Use the exit and break statements in a shell script.
  • Explain how to configure and use a .bashrc start-up file.


Tutorial Reference Material

Course Notes
Linux Command/Shortcut Reference
YouTube Videos
Course Notes:


Control Flow Statements

Additional Statements

Startup Files


Brauer Instructional Videos:

KEY CONCEPTS

IF-ELIF-ELSE STATEMENT

Example of how an if-elif-else statement works.
(Image licensed under cc)

The elif statement can be used to perform additional conditional tests of the previous test condition tests FALSE. This statement is used to make your logic control-flow statement to be more adaptable.

How it Works:
If the test condition returns a TRUE value, then the Linux Commands between
then and else statements are executed.

If the test returns a FALSE value, then a new condition is tested again,
and action is taken if the result is TRUE, then the Linux Commands between
then and else statements are executed. Additional elif statements can be used if additional conditional testing is required . Eventually, an action will be taken
when the final test condition is FALSE.

Example:

num1=5
num2=10
if test $num1 –lt $num2
then
   echo “Less Than”
elif test $num1 –gt $num2
then
   echo “Greater Than”
else    echo “Equal to”
fi


FOR LOOP USING COMMAND SUBSTITUTION

Let’s issue the for loop with a list using command substitution.
In the example below, we will use command substitution to issue the ls command and
have that output (filenames) become arguments for the for loop.

Example:

for x in $(ls)
do
   echo “The item is: $x”
done


WHILE LOOP

Example of how a while loop works.
(Image licensed under cc)

The while loop is useful to loop based on the result from a test condition or command result.
This type of loop is very useful for error-checking.

How it Works:
The condition/expression is evaluated, and if the condition/expression is TRUE,
the code within … the block is executed.
This repeats until the condition/expression becomes FALSE.
Reference: https://en.wikipedia.org/wiki/While_loop

Example 1:

answer=10
read –p “pick a number between 1 and 10: “ guess
while test $guess –eq 10
do    read –p “Try again: “ guess
done
echo “You are correct”



Example 2:

value=1
while [ $value -le 5 ]
do
  echo "$value"
  ((value=value+1)) # could also use ((value++))
done
1
2
3
4
5


EXIT & BREAK STATEMENTS


exit Statement

The exit statement is used to terminate a shell script.
This statement is very useful when combined with logic in a shell script.
The exit command can contain an argument to provide the exit status of your shell script.

Example:

if [ $# -ne 1 ]
then
  echo "USAGE: $0 [arg]"
  exit 1
fi

break Statement

The break statement is used to terminate a loop.
Although the loop terminates, the shell script will continue running.

Example:
read -p "Enter a number: " number
while [ $number -ne 5 ]
do
   read -p "Try again. Enter a number: " number
   if [ $number -eq 5 ]
   then
     break
   fi
done


START-UP FILES

Shell configuration (start-up) files are scripts that are run when you log in, log out, or start a new shell.
The start-up files can be used, for example, to set the prompt and screen display, create local variables,
or create temporary Linux commands (aliases)

The /etc/profile file belongs to the root user and is the first start-up file that executes when you log in, regardless of shell.

User-specific config start-up files are in the user's home directory:

  • ~/.bash_profile runs when you log in.
  • The ~/.bashrc runs when you start an interactive Bash shell.


Logout Files

There is a file that resets or restores the shell environment (including shut-down of programs running in the shell) when the user logs out of their shell. User-specific logout start-up files are in the user's home directory: ~/.bash_logout


INVESTIGATION 1: ADDITIONAL LOGIC STATEMENTS

ATTENTION: The due date for successfully completing this tutorial (i.e. tutorial 12) is by Friday, December 15 @ 11:59 PM (Week 14).

In this investigation, you will learn additional control-flow statements
to allow your shell scripts to be even more adaptable.


Perform the Following Steps:

  1. Login to your matrix account.

  2. Issue a command to confirm you are located in your home directory.

  3. Issue a Linux command to create a directory called advanced

  4. Issue a Linux command to change to the advanced directory.

  5. Issue a Linux command to confirm you are located in the advanced directory.

    In tutorial 10, you learned how to use the if control-flow statement. You will now learn to use the if-else statement
    to take two different actions based on if the condition tests either TRUE or FALSE.

  6. Use a text editor like vi or nano to create the text file called if-4.bash (eg. vi if-4.bash)

  7. Enter the following lines in your shell script:
    #!/bin/bash
    clear
    read -p "Enter the first number: " num1
    read -p "Enter the second number: " num2
    if [ $num1 -gt $num2 ]
    then
       echo "The first number is greater than the second number."
    elif [ $num1 -lt $num2 ]
    then
       echo "The first number is less than the second number."
    else
       echo "The first number is equal to the second number."
    fi


  8. Save your editing session and exit the text editor (eg. with vi: press ESC, then type :x followed by ENTER).

  9. Issue the following linux command to add execute permissions for your shell script:
    chmod u+x if-4.bash

  10. Run your shell script by issuing: ./if-4.bash

    Try running the script several times with numbers different and equal to each other
    to confirm that the shell script works correctly.

    A classic shell script to demonstrate many different paths or actions to take depending of multiple testing
    using an if-elif-else statement would be a mark to letter grade converter.

  11. Use a text editor like vi or nano to create the text file called if-5.bash (eg. vi if-5.bash)

  12. Enter the following lines in your shell script:
    #!/bin/bash
    clear
    read -p "Enter a mark (0-100): " mark
    if [ $mark -ge 80 ]
    then
       echo "You received an A grade."
    elif [ $mark -ge 70 ]
    then
       echo "You received a B grade."
    elif [ $mark -ge 60 ]
    then
       echo "You received a C grade."
    elif [ $mark -ge 50 ]
    then
       echo "You received a D grade."
    else
       echo "You received an F grade."
    fi


  13. Save your editing session and exit the text editor (eg. with vi: press ESC, then type :x followed by ENTER).

  14. Issue the following linux command to add execute permissions for your shell script:
    chmod u+x if-5.bash

  15. Run your shell script by issuing: ./if-5.bash

    What do you notice? Run several times to confirm that the shell script runs correctly for all mark (grade) categories.

  16. Issue the following to run a checking script:
    ~osl640/week12-check-1

  17. If you encounter errors, make corrections and re-run the checking script until you
    receive a congratulations message, then you can proceed.

In the next investigation, you will learn more about the for loop and learn how to use the while loop for error-checking.

INVESTIGATION 2: ADDITIONAL LOOPING STATEMENTS

In this investigation, you will learn more about the for loop
and learn how to use the while loop for error-checking.


Perform the Following Steps:

  1. Issue a Linux command to confirm you are located in your advanced directory in your Matrix account.

  2. Issue the following Linux command to view the ~/for-1.bash file:
    more ~/for-1.bash)

    As you should have noticed from tutorial 10 that the for loop can use a list.
    You can also use the for loop with positional parameters stored as arguments
    from an executed shell script.

    You can also use the for loop with a list using command substitution.
    Using command sustitution is an effective method to loop within a shell script.

    Before creating a new shell script, let's learn to use command substitution from the Bash Shell
    to store arguments as positional parameters and use them for practice.

  3. Issue the following linux command to set positional parameters in your current shell:
    set apples oranges bananas pears

  4. Issue the following linux command:
    echo $#

    What do you notice? What does this value represent?

  5. Issue the following linux command:
    echo $*

    What do you notice?

    These positional parameters can be used with a for loop. To simplify things,
    let's create another shell script that uses command substitution within a for loop.

  6. Use a text editor like vi or nano to create the text file called for-3.bash (eg. vi for-3.bash)
  7. Enter the following lines in your shell script:
    #!/bin/bash
    clear
    set 10 9 8 7 6 5 4 3 2 1
    for x
    do
       echo $x
    done
    echo "blast-off!"


  8. Save your editing session and exit the text editor (eg. with vi: press ESC, then type :x followed by ENTER).

  9. Add execute permissions for the owner of this script and run this Bash shell script.

    What do you notice?

    Let's create another shell script to run a loop for each file that is contained in your current directory using command substitution.

  10. Use a text editor like vi or nano to create the text file called for-4.bash (eg. vi for-4.bash)

  11. Enter the following lines in your shell script:
    #!/bin/bash
    clear
    set $(ls)
    echo "Here are files in my current directory:"
    echo
    for x
    do
       echo "    $x"
    done


  12. Save your editing session and exit the text editor (eg. with vi: press ESC, then type :x followed by ENTER).

  13. Add execute permissions and run this Bash shell script.

    What do you notice?

    We can reduce a line in our shell script by using command substitution in the for loop instead of using
    the set command. Let's demonstrate this in another shell script.

  14. Use a text editor like vi or nano to create the text file called for-5.bash (eg. vi for-5.bash)

  15. Enter the following lines in your shell script:
    #!/bin/bash
    clear
    echo "Here are files in my current directory:"
    echo
    for x in $(ls)
    do
       echo "    $x"
    done

  16. Save your editing session and exit the text editor (eg. with vi: press ESC, then type :x followed by ENTER).

  17. Add execute permissions for this shell script and run Bash shell script
    What do you notice? Does the output for this shell script differ from for-4.bash? Why?

    We now want to introduce you to the use of error-checking.

  18. Use the more command to view the previously-created Bash shell script ~/if-5.bash (eg. more ~/if-5.bash)

    Take a few moments to re-familiarize yourself with this shell script

  19. Run your shell script by issuing: ~/if-5.bash

    When prompted, enter a letter instead of a number. What happens?

    Let's edit the for-5.bash shell script to perform error-checking to force the user to enter a numeric value between 0 and 100.

    NOTE: The while statement can be used with the test command (or a simple linux command or a linux pipeline command) for error checking. In our case, we will use a pipeline command with extended regular expressions. In order to loop while the result is TRUE (not FALSE), you can use the negation symbol (!) to set the test condition to the opposite.

  20. Use a text editor like vi or nano to edit the text file called ~/if-5.bash (eg. vi ~/if-5.bash)

  21. Add the following lines in your shell script IMMEDIATELY AFTER the read statement to prompt the user for a mark:
    while ! echo $mark | egrep "^[0-9]{1,}$" > /dev/null 2> /dev/null
    do
       read -p "Not a valid number. Enter a mark (0-100): " mark
    done


  22. Save your editing session and exit the text editor (eg. with vi: press ESC, then type :x followed by ENTER).

  23. Run your shell script by issuing:
    ./if-5.bash

  24. When prompted, enter a letter instead of a number. What happens?
    Does the shell script allow you to enter an invalid grade like 200 or -6?

    Let's add an additional error-checking loop to force the user to enter a number between 0 and 100.

    Compound operators like && and || can be used with the test command.
    Let's use the || compound criteria to to NOT accept numbers outside of the range 0 to 100.

  25. Use a text editor like vi or nano to edit the text file called ~/if-5.bash (eg. vi ~/if-5.bash)

  26. Add the following lines in your shell script IMMEDIATELY AFTER the PREVIOUSLY ADDED
    error-checking while loop statement to force the user to enter a valid number (between 1 and 100):
    while [ $mark -lt 0 ] || [ $mark -gt 100 ]
    do
       read -p "Invalid number range. Enter a mark (0-100): " mark
    done


  27. Save your editing session and exit the text editor (eg. with vi: press ESC, then type :x followed by ENTER).

  28. Run your shell script by issuing:
    ~/if-5.bash

  29. When prompted, enter a letter instead of a number. What happens?
    Does the shell script allow you to enter an invalid grade like 200 or -6?

    Let's reinforce math operations in a shell script (that you created in tutorial 10) and then incorporate math operations within a loop.

  30. Use a text editor like vi or nano to create the text file called for-6.bash (eg. vi for-6.bash)

  31. Enter the following lines in your shell script:

    #!/bin/bash
    value=1
    while [ $value -le 5 ]
    do
      echo "$value"
      value=value+1
    done

  32. Save your editing session and exit the text editor (eg. with vi: press ESC, then type :x followed by ENTER).

  33. Set execute permissions for this shell script and run your shell script by issuing: ./for-6.bash

    You should have noticed an error message.

  34. To demonstrate what went wrong, issue the following commands:

    num1=5;num2=10
    result=$num1+$num2
    echo $result

    Notice that the user-defined variable stores the text "10+5" which is NOT the expected result of adding the number 10 and 5.

    As you may recall in tutorial 10, 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 using the math construct (( ))

  35. To demonstrate, issue the following set of commands:

    num1=5;num2=10
    sum=$(($num1+$num2))
    echo $sum

    ((product=$num1*$num2))
    echo $product


    Let's correct our for-6.bash shell script to correctly use math operations.

  36. Use a text editor like vi or nano to edit the text file called for-6.bash (eg. vi for-6.bash)

  37. Edit line 6 and replace with the following:
    ((value=value+1))

    Note: For those familiar with other programming languages, you can achieve the same results by using: ((value++))

  38. Save your editing session and exit the text editor (eg. with vi: press ESC, then type :x followed by ENTER).

  39. Run this Bash shell script again.

    What do you notice this time?

  40. Issue the following to run a checking script:
    ~osl640/week12-check-2

  41. If you encounter errors, make corrections and re-run the checking script until you
    receive a congratulations message, then you can proceed.

In the next investigation, you will learn to use the exit statement to terminate the execution of a shell script
if not run with the properly number of arguments and use the break statement that will terminate a loop
but NOT terminate the running of the shell script.

INVESTIGATION 3: USING STARTUP FILES

LINUX PRACTICE QUESTIONS