Simple .sh script Write a SHELL script sumPairInt.sh that calculates and displays the sum of the digits in the even positions of a of a numeric value passed as an argument to the script. For example, the call sumPairInt.sh 234568 displays as result the value 16 : 3+5+8 = 16. Your script must validate the number of arguments and the type of argument (a positive integer). If the argument value is not valid, you must display the message indicating the correct use of the script and finish the execution. I currently have this code :    # Check if the argument is a positive integer if ! [[ "$1" =~ ^[0-9]+$ ]]; then   echo "Error: argument must be a positive integer" >&2   exit 1 fi # Initialize the sum to 0 sum=0 # Iterate through the digits of the argument in even positions for (( i=0; i<${#1}; i+=2 )); do   # Extract the digit at position i   digit=${1:i:1}   # Add the digit to the sum   sum=$((sum + digit)) done # Display the sum echo "Sum of the digits in even positions: $sum"   However, the output is not the one that is desired. If for example I call sumPairInt.sh 123456789, the output is 9, when the desired output is supposed to be 20. (2 + 4 + 6 + 8). Please help

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Simple .sh script

Write a SHELL script sumPairInt.sh that calculates and displays the sum of the digits in the even positions of a
of a numeric value passed as an argument to the script. For example, the call sumPairInt.sh 234568
displays as result the value 16 : 3+5+8 = 16. Your script must validate the number of arguments and the type
of argument (a positive integer). If the argument value is not valid, you must display the message indicating the correct use of the script and finish the execution.

I currently have this code : 

 

# Check if the argument is a positive integer
if ! [[ "$1" =~ ^[0-9]+$ ]]; then
  echo "Error: argument must be a positive integer" >&2
  exit 1
fi

# Initialize the sum to 0
sum=0

# Iterate through the digits of the argument in even positions
for (( i=0; i<${#1}; i+=2 )); do
  # Extract the digit at position i
  digit=${1:i:1}
  # Add the digit to the sum
  sum=$((sum + digit))
done

# Display the sum
echo "Sum of the digits in even positions: $sum"

 

However, the output is not the one that is desired. If for example I call sumPairInt.sh 123456789, the output is 9, when the desired output is supposed to be 20. (2 + 4 + 6 + 8). Please help

Expert Solution
steps

Step by step

Solved in 3 steps with 2 images

Blurred answer
Knowledge Booster
File Input and Output Operations
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education