34 lines
896 B
Bash
Executable file
34 lines
896 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# ----------------------
|
|
# sf -- script framework
|
|
# ----------------------
|
|
|
|
# Declare sf variables
|
|
sfdesc="Calculate the sum of multiple numbers."
|
|
|
|
sfargs+=("NUMBERS;Numbers which will be added")
|
|
sfargs+=("verbose;v;Enable verbose output")
|
|
|
|
sfparr=true # Treat the last declared positional argument as array
|
|
|
|
# Include sf, this could be replaced with a long oneliner
|
|
source "$(dirname $0)/../sf"
|
|
|
|
# ----------------------
|
|
# Actual script
|
|
# ----------------------
|
|
|
|
sum=0
|
|
|
|
for n in "${NUMBERS[@]}"; do # Use parsed positional argument array
|
|
if [ "$verbose" == true ]; then # Use parsed flag
|
|
echo -n "$sum + $n = "
|
|
fi
|
|
sum="$(expr $sum + $n)"
|
|
if [ "$verbose" == true ]; then # Use parsed flag
|
|
echo "$sftbf$sum$sftrs" # Use text formatting variables
|
|
fi
|
|
done
|
|
|
|
echo "The sum is: $sftbf$sum$sftrs" # Use text formatting variables
|