Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Configuration file reading in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a configuration file in scripting?
A configuration file stores settings or options that a script can read to change its behavior without changing the script code.
Click to reveal answer
beginner
How do you read a simple key-value pair from a configuration file in Bash?
You can use the 'source' command to load the file if it contains valid Bash syntax, or use tools like 'grep' and 'cut' to extract values.
Click to reveal answer
beginner
What does the command 'source config.cfg' do in a Bash script?
It runs the commands inside 'config.cfg' in the current shell, making variables and functions defined there available to the script.
Click to reveal answer
intermediate
Why should configuration files avoid complex commands when used with 'source'?
Because 'source' executes the file as code, complex commands can cause errors or unexpected behavior. Configuration files should only set variables.
Click to reveal answer
intermediate
How can you safely read a configuration file with comments and blank lines in Bash?
Use 'grep' to ignore comments and blank lines, then parse key-value pairs with 'cut' or 'awk' to extract needed values.
Click to reveal answer
Which Bash command loads variables from a configuration file into the current script?
Acat
Bsource
Cecho
Dgrep
What is the best format for a configuration file to be sourced by a Bash script?
APlain text with key=value pairs
BBinary file
CJSON format
DXML format
How can you ignore comment lines starting with '#' when reading a config file with grep?
Agrep -i 'comment' config.cfg
Bgrep '^#' config.cfg
Cgrep -v '^#' config.cfg
Dgrep -c '#' config.cfg
If a config file has 'PORT=8080', how do you access this value after sourcing it?
Aecho PORT
BPORT()
Cget PORT
D$PORT
What happens if a config file sourced by Bash contains commands that delete files?
AThose commands will run and may delete files
BThey will be ignored
CAn error will occur
DThe script will skip those lines
Explain how to safely read and use a configuration file in a Bash script.
Think about how the script gets settings without errors.
You got /4 concepts.
    Describe the risks of sourcing an untrusted configuration file in Bash.
    Consider what happens when code runs unexpectedly.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of reading a configuration file in a bash script?
      easy
      A. To load variable values that the script can use
      B. To execute commands from the internet
      C. To delete files automatically
      D. To compile the script into a binary

      Solution

      1. Step 1: Understand configuration files

        Configuration files usually contain variable assignments that scripts read to get settings.
      2. Step 2: Purpose of reading config files

        Reading these files allows scripts to use flexible values without hardcoding them.
      3. Final Answer:

        To load variable values that the script can use -> Option A
      4. Quick Check:

        Config files provide variables = B [OK]
      Hint: Config files store variables for scripts to use [OK]
      Common Mistakes:
      • Thinking config files run commands directly
      • Confusing config files with executable scripts
      • Assuming config files delete or compile code
      2. Which of the following is the correct syntax to read a config file named settings.conf in a bash script?
      easy
      A. source settings.conf
      B. read settings.conf
      C. import settings.conf
      D. execute settings.conf

      Solution

      1. Step 1: Identify the command to read config files

        In bash, source or . is used to read and execute commands from a file in the current shell.
      2. Step 2: Check options

        read reads input, import is not a bash command, and execute is invalid.
      3. Final Answer:

        source settings.conf -> Option A
      4. Quick Check:

        Use source or . to read config [OK]
      Hint: Use 'source' or '.' to load config files [OK]
      Common Mistakes:
      • Using 'read' command instead of 'source'
      • Trying to 'import' like in other languages
      • Assuming 'execute' runs the config file
      3. Given the config file app.conf with content:
      USERNAME=guest
      PORT=8080

      What will the output of this script be?
      source app.conf
      echo "User: $USERNAME, Port: $PORT"
      medium
      A. User: $USERNAME, Port: $PORT
      B. User: , Port:
      C. Syntax error
      D. User: guest, Port: 8080

      Solution

      1. Step 1: Source the config file

        The source app.conf command loads variables USERNAME and PORT into the script.
      2. Step 2: Print the variables

        The echo command prints the values of USERNAME and PORT, which are 'guest' and '8080'.
      3. Final Answer:

        User: guest, Port: 8080 -> Option D
      4. Quick Check:

        Variables loaded and printed = C [OK]
      Hint: Sourcing sets variables, echo prints their values [OK]
      Common Mistakes:
      • Not sourcing the file before using variables
      • Expecting variable names printed literally
      • Confusing syntax causing errors
      4. What is wrong with this script snippet that tries to read config.cfg and print a variable?
      source config.cfg
      echo "Value: $VALUE"

      Assuming config.cfg contains VALUE=42, but the output is empty.
      medium
      A. The script forgot to use 'export' before sourcing
      B. The config file has spaces around '=' causing no assignment
      C. The variable name is case-sensitive and mismatched
      D. The source command is misspelled

      Solution

      1. Step 1: Check config file syntax

        If the config file has spaces like VALUE = 42, bash treats it as a command, not assignment.
      2. Step 2: Effect on sourcing

        Because of wrong syntax, VALUE is not set, so echo prints empty.
      3. Final Answer:

        The config file has spaces around '=' causing no assignment -> Option B
      4. Quick Check:

        No spaces in var assignment = A [OK]
      Hint: No spaces around '=' in config files [OK]
      Common Mistakes:
      • Adding spaces around '=' in variable assignments
      • Thinking 'export' is needed before sourcing
      • Ignoring case sensitivity of variable names
      5. You want to safely read a config file settings.conf that might contain unsafe commands. Which approach is best to avoid running unwanted code while still getting variable values?
      hard
      A. Run the config file as a separate script
      B. Use source settings.conf directly without checks
      C. Manually parse the file line-by-line to extract variable assignments
      D. Delete the config file before sourcing

      Solution

      1. Step 1: Understand risks of sourcing

        Using source runs all commands in the file, which can be unsafe if file is untrusted.
      2. Step 2: Safe alternative

        Manually reading lines and extracting only variable assignments avoids executing harmful commands.
      3. Final Answer:

        Manually parse the file line-by-line to extract variable assignments -> Option C
      4. Quick Check:

        Parse manually to avoid unsafe code = A [OK]
      Hint: Parse config lines manually to avoid running code [OK]
      Common Mistakes:
      • Sourcing untrusted config files directly
      • Running config as a script without validation
      • Deleting config file instead of securing it
      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