Learn Bash Scripting by Building Five Programs

I’m trying to use a multiline comment in my ‘countdown.sh’ project and it is not letting me pass, no matter what I do.

This is my code :

 #!/bin/bash
#Program that counts down to zero from a given argument
echo -e "\n~~ Countdown Timer ~~\n"

: '
for (( i = $1; i >= 0; i-- ))
do
  echo $i
  sleep 1
done
'

This is the instruction for this step:
image

I’m so confused. Help!

Here’s another view of what I’m seeing, along with the error message saying it’s not added in correctly and won’t let me continue.

Wasn’t your script before like this?

#!/bin/bash

# Program that counts down to zero from a given argument

echo -e "\n~~ Countdown Timer ~~\n"

if [[ $1 -gt 0 ]]
then
  for (( i = $1; i >= 0; i-- ))
  do
    echo $i
    sleep 1
  done
else
  echo Include a positive integer as the first argument.
fi

Therefore, the solution to this step wouldn’t be:

#!/bin/bash

# Program that counts down to zero from a given argument

echo -e "\n~~ Countdown Timer ~~\n"

if [[ $1 -gt 0 ]]
then
: '
  for (( i = $1; i >= 0; i-- ))
  do
    echo $i
    sleep 1
  done
'
else
  echo Include a positive integer as the first argument.
fi

As a note, and as a matter of obligation on my part, I do criticize the teaching of the : as a multi-line comment in Bash, but rather as trickery. It is NOT a multi-line comment.
The colon : is a legacy esoteric operator that is equivalent to true. It comes from earlier shells that did not have the keyword true and it is the POSIX compliance that brings it to Bash.
A REAL comment is ignored and it is not executed by the shell. The : operator it is executed by the shell but since it means TRUE, and by making all those previous lines of code a string, the effect is hidden from the user at execution.

There are other legit ways of using the : operator.
Multi-line comments are done in Bash by placing a # in front of every line you do not want to be considered as program when bash starts to execute it.

For experimentation just think what this should do and test the result at the command line.

: echo "What's that?"
⤺  ~
⤻  # Let's make the shell tell you what it is executing
⤺  ~
⤻  set -x
⤺  ~
⤻  echo "Hello"
+ echo Hello
Hello
⤺  ~
⤻  # Notice that the + shows what the shell is doing and the next line is the result
⤺  ~
⤻  # What? No comment executed?
⤺  ~
⤻  # Nope
⤺  ~
⤻  : 'Hello'
+ : Hello
⤺  ~
⤻  # You see? It is executed but 'Hello' never has a chance to be displayed.
⤺  ~
⤻  : echo "What's that?"
+ : echo 'What'\''s that?'
⤺  ~
⤻  # Again, the same result. But real comments do not show
⤺  ~
⤻  # Let's put the terminal back to its default
⤺  ~
⤻  set +x
+ set +x
⤺  ~
⤻