Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Command-line arguments ($1, $2, ...) in Bash Scripting - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print the first command-line argument.

Bash Scripting
echo "First argument is: $[1]"
Drag options to blanks, or click blank then click option'
A$1
B$2
C$0
D$#
Attempts:
3 left
💡 Hint
Common Mistakes
Using $0 instead of $1 to get the first argument.
Using $# which gives the number of arguments, not the argument itself.
2fill in blank
medium

Complete the code to print the second command-line argument.

Bash Scripting
echo "Second argument is: $[1]"
Drag options to blanks, or click blank then click option'
A$0
B$2
C$1
D$#
Attempts:
3 left
💡 Hint
Common Mistakes
Using $1 instead of $2 for the second argument.
Using $0 which is the script name.
3fill in blank
hard

Fix the error in the code to print all arguments count.

Bash Scripting
echo "Number of arguments: $[1]"
Drag options to blanks, or click blank then click option'
A$1
B$*
C$0
D$#
Attempts:
3 left
💡 Hint
Common Mistakes
Using $1 which is the first argument, not the count.
Using $0 which is the script name.
4fill in blank
hard

Fill both blanks to print the first and third arguments.

Bash Scripting
echo "First: $[1], Third: $[2]"
Drag options to blanks, or click blank then click option'
A$1
B$2
C$3
D$#
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up $2 and $3 for third argument.
Using $# which is argument count, not argument value.
5fill in blank
hard

Fill all three blanks to print the script name, first argument, and total arguments count.

Bash Scripting
echo "Script: $[1], Arg1: $[2], Count: $[3]"
Drag options to blanks, or click blank then click option'
A$1
B$#
C$0
D$2
Attempts:
3 left
💡 Hint
Common Mistakes
Using $1 for script name instead of $0.
Using $2 instead of $1 for first argument.
Using $1 or $2 instead of $# for count.

Practice

(1/5)
1. What does $1 represent in a bash script?
easy
A. The last command-line argument passed to the script
B. The total number of arguments passed to the script
C. The name of the script file
D. The first command-line argument passed to the script

Solution

  1. Step 1: Understand command-line arguments in bash

    In bash scripts, $1 refers to the first argument given after the script name.
  2. Step 2: Differentiate from other special variables

    $# is the count of arguments, $0 is the script name, and $@ is all arguments.
  3. Final Answer:

    The first command-line argument passed to the script -> Option D
  4. Quick Check:

    $1 = first argument [OK]
Hint: Remember $1 is always the first argument after script name [OK]
Common Mistakes:
  • Confusing $1 with $# (argument count)
  • Thinking $1 is the script name
  • Mixing $1 with $0 or $@
2. Which of the following is the correct way to access the third argument in a bash script?
easy
A. $0
B. $2
C. $3
D. $#

Solution

  1. Step 1: Recall argument numbering in bash

    Arguments start from $1 for the first, so the third argument is $3.
  2. Step 2: Identify incorrect options

    $2 is second argument, $# is count, $0 is script name.
  3. Final Answer:

    $3 -> Option C
  4. Quick Check:

    Third argument = $3 [OK]
Hint: Count arguments starting at $1, so third is $3 [OK]
Common Mistakes:
  • Using $2 instead of $3 for third argument
  • Confusing $# with argument value
  • Using $0 which is script name
3. What will be the output of this script if run as ./script.sh apple banana cherry?
echo "First: $1"
echo "Second: $2"
echo "Count: $#"
medium
A. First: apple Second: banana Count: 3
B. First: apple Second: cherry Count: 3
C. First: ./script.sh Second: apple Count: 3
D. First: banana Second: cherry Count: 2

Solution

  1. Step 1: Identify argument values

    Arguments are apple ($1), banana ($2), cherry ($3). Script name is $0.
  2. Step 2: Understand output commands

    echo prints $1 as apple, $2 as banana, and $# as 3 (number of arguments).
  3. Final Answer:

    First: apple Second: banana Count: 3 -> Option A
  4. Quick Check:

    Arguments match output [OK]
Hint: Remember $1, $2 are first and second args; $# is count [OK]
Common Mistakes:
  • Mixing script name ($0) with arguments
  • Confusing argument order
  • Miscounting number of arguments
4. Given this script snippet:
echo "Argument 1: $1"
echo "Argument 2: $2"
What is the error if you run the script without any arguments?
medium
A. Script prints empty lines for $1 and $2
B. No output is printed
C. Script throws a syntax error
D. Script prints the script name instead of arguments

Solution

  1. Step 1: Understand missing arguments behavior

    If no arguments are passed, $1 and $2 are empty strings, not errors.
  2. Step 2: Check script output

    echo prints "Argument 1: " and "Argument 2: " with nothing after colon.
  3. Final Answer:

    Script prints empty lines for $1 and $2 -> Option A
  4. Quick Check:

    Missing args = empty $1, $2 [OK]
Hint: No args means $1, $2 are empty, no errors [OK]
Common Mistakes:
  • Expecting syntax or runtime error
  • Thinking script name prints as argument
  • Assuming no output at all
5. You want a bash script to print all arguments passed to it, each on a new line, using only $1, $2, etc. Which approach works best?
hard
A. Use a loop with a counter and access arguments by $1, $2, ... until counter > $#
B. Use shift command in a loop to access each argument and print it
C. Use $0 to print all arguments one by one
D. Use echo $@ to print all arguments on one line

Solution

  1. Step 1: Understand how to access all arguments one by one

    Using shift moves arguments left, so $1 becomes next argument each time.
  2. Step 2: Compare options

    Use a loop with a counter and access arguments by $1, $2, ... until counter > $# is complex and error-prone; Use echo $@ to print all arguments on one line prints all on one line; Use $0 to print all arguments one by one prints script name; Use shift command in a loop to access each argument and print it correctly loops and prints each argument on new line.
  3. Final Answer:

    Use shift command in a loop to access each argument and print it -> Option B
  4. Quick Check:

    Shift loops through args one by one [OK]
Hint: Use shift in loop to print each argument separately [OK]
Common Mistakes:
  • Using $0 instead of arguments
  • Trying to manually count without shift
  • Printing all args on one line instead of separate lines
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard