Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Function arguments ($1, $2 inside function) in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What do $1 and $2 represent inside a bash function?

$1 and $2 are the first and second arguments passed to the function when it is called.

Click to reveal answer
beginner
How do you access the third argument inside a bash function?

You use $3 to access the third argument passed to the function.

Click to reveal answer
beginner
True or False: $1 inside a bash function refers to the first argument passed to the script, not the function.

False. Inside a function, $1 refers to the first argument passed to that function, not the script.

Click to reveal answer
beginner
How can you pass arguments to a bash function?

You call the function followed by the arguments separated by spaces, like myfunc arg1 arg2. Inside the function, $1 will be arg1, $2 will be arg2.

Click to reveal answer
beginner
What happens if you call a bash function without arguments but try to use $1 inside it?

$1 will be empty or unset because no argument was passed to the function.

Click to reveal answer
Inside a bash function, what does $2 represent?
AThe second environment variable
BThe second argument passed to the script
CThe second argument passed to the function
DThe second line of the script
How do you pass arguments to a bash function named greet?
Agreet arg1 arg2
Bgreet(arg1, arg2)
Cgreet[arg1, arg2]
Dgreet: arg1 arg2
What will $1 be inside a function if you call it without any arguments?
AAn error message
BThe first argument of the script
CThe function name
DEmpty or unset
Which symbol is used to access the first argument inside a bash function?
A#1
B$1
C&1
D*1
If a function is called as func apple banana, what is $2 inside func?
Abanana
Bapple
Cfunc
Dempty
Explain how to use $1 and $2 inside a bash function with an example.
Think about how you pass and use arguments in a function.
You got /4 concepts.
    What happens if you try to use $1 inside a bash function but you did not pass any arguments when calling it?
    Consider what $1 means when no argument is given.
    You got /4 concepts.

      Practice

      (1/5)
      1. In a bash function, what does $1 represent?
      easy
      A. The first argument passed to the function
      B. The name of the function
      C. The total number of arguments passed to the script
      D. The exit status of the last command

      Solution

      1. Step 1: Understand function arguments in bash

        Inside a bash function, $1 refers to the first argument passed specifically to that function, not the script.
      2. Step 2: Differentiate from script arguments

        The script's arguments are accessed outside functions, but inside a function, $1 resets to the function's first argument.
      3. Final Answer:

        The first argument passed to the function -> Option A
      4. Quick Check:

        $1 in function = first function argument [OK]
      Hint: Inside functions, $1 is the first function argument, not script's [OK]
      Common Mistakes:
      • Confusing $1 inside function with script's $1
      • Thinking $1 is function name
      • Mixing $1 with number of arguments
      2. Which of the following is the correct way to define a bash function that uses arguments $1 and $2?
      easy
      A. function myfunc { echo $1 $2
      B. function myfunc($1, $2) { echo $1 $2 }
      C. def myfunc($1, $2) { echo $1 $2 }
      D. myfunc() { echo $1 $2; }

      Solution

      1. Step 1: Recall bash function syntax

        Bash functions are defined using name() { commands; } or function name { commands; } without parameters in parentheses.
      2. Step 2: Identify correct syntax for arguments

        Arguments are accessed inside the function via $1, $2, not declared in parentheses.
      3. Final Answer:

        myfunc() { echo $1 $2; } -> Option D
      4. Quick Check:

        Function args accessed inside, no params in definition [OK]
      Hint: Define functions with () and access args inside, no params in () [OK]
      Common Mistakes:
      • Trying to declare parameters in function definition
      • Using other language syntax like def or parentheses with args
      • Missing semicolon or braces
      3. What is the output of this script?
      greet() {
        echo "Hello, $1 and $2!"
      }
      greet Alice Bob
      medium
      A. Hello, $1 and $2!
      B. Hello, Alice and Bob!
      C. Hello, Alice and !
      D. Hello, and Bob!

      Solution

      1. Step 1: Understand function call and arguments

        The function greet is called with two arguments: Alice and Bob. Inside the function, $1 is Alice and $2 is Bob.
      2. Step 2: Substitute arguments in echo

        The echo command prints: "Hello, Alice and Bob!" exactly as expected.
      3. Final Answer:

        Hello, Alice and Bob! -> Option B
      4. Quick Check:

        Function args $1=Alice, $2=Bob replaced correctly [OK]
      Hint: Arguments replace $1, $2 inside function call [OK]
      Common Mistakes:
      • Expecting literal $1 and $2 printed
      • Mixing argument order
      • Forgetting to pass both arguments
      4. Consider this function:
      sum() {
        echo $(($1 + $2))
      }
      sum 5

      What error or output will this produce?
      medium
      A. bash: + : syntax error: operand expected (error token is "+ ")
      B. 5
      C. bash: syntax error: unexpected end of file
      D. 10

      Solution

      1. Step 1: Analyze function call with missing argument

        The function sum expects two arguments, but only one (5) is passed. So, $2 is empty.
      2. Step 2: Evaluate arithmetic expression

        The expression $(($1 + $2)) becomes (5 + ), which is invalid syntax causing an error about operand expected.
      3. Final Answer:

        bash: + : syntax error: operand expected (error token is "+ ") -> Option A
      4. Quick Check:

        Missing $2 causes arithmetic syntax error [OK]
      Hint: Always pass all args used in arithmetic to avoid errors [OK]
      Common Mistakes:
      • Assuming missing args default to zero
      • Ignoring error messages
      • Passing arguments incorrectly
      5. You want a bash function concat that joins two strings passed as arguments with a dash between them. Which function definition correctly does this?
      hard
      A. concat() { echo "$1+$2"; }
      B. concat() { echo "$1 $2"; }
      C. concat() { echo "$1-$2"; }
      D. concat() { echo "$1$2"; }

      Solution

      1. Step 1: Understand the requirement

        The function should join two strings with a dash - between them.
      2. Step 2: Check each option's output

        concat() { echo "$1-$2"; } prints $1-$2 which is exactly the two strings joined by a dash. Others use space, plus, or no separator.
      3. Final Answer:

        concat() { echo "$1-$2"; } -> Option C
      4. Quick Check:

        Dash between args = concat() { echo "$1-$2"; } [OK]
      Hint: Use echo "$1-$2" to join with dash inside function [OK]
      Common Mistakes:
      • Using space or plus instead of dash
      • Forgetting quotes causing word splitting
      • Concatenating without separator
      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