Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Why file I/O is core to scripting in Bash Scripting - Test Your Understanding

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

Complete the code to read the contents of a file named 'data.txt' and display it.

Bash Scripting
cat [1]
Drag options to blanks, or click blank then click option'
Aoutput.txt
Binput.txt
Cfile.txt
Ddata.txt
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong file name.
Forgetting to specify the file name after 'cat'.
2fill in blank
medium

Complete the code to write the text 'Hello World' into a file named 'greeting.txt'.

Bash Scripting
echo "Hello World" > [1]
Drag options to blanks, or click blank then click option'
Agreeting.txt
Boutput.txt
Chello.txt
Dmessage.txt
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong file name.
Using the append operator >> instead of overwrite >.
3fill in blank
hard

Fix the error in the code to append the text 'New line' to the file 'log.txt'.

Bash Scripting
echo "New line" [1] log.txt
Drag options to blanks, or click blank then click option'
A|
B>
C>>
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using > which overwrites the file.
Using input redirection < or pipe | incorrectly.
4fill in blank
hard

Fill both blanks to create a script that reads 'input.txt', filters lines containing 'error', and writes them to 'errors.log'.

Bash Scripting
grep [1] [2] > errors.log
Drag options to blanks, or click blank then click option'
A"error"
Binput.txt
Coutput.txt
D"warning"
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong pattern or file name.
Confusing input and output files.
5fill in blank
hard

Fill all three blanks to create a script that counts lines in 'data.csv' containing the word 'success' and saves the count to 'count.txt'.

Bash Scripting
grep [1] [2] | wc -l > [3]
Drag options to blanks, or click blank then click option'
A"success"
Bdata.csv
Ccount.txt
Derrors.log
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong file names.
Forgetting to redirect output to the count file.

Practice

(1/5)
1. Why is file input/output (I/O) important in bash scripting?
easy
A. It makes scripts run faster by using less memory.
B. It allows scripts to read from and write to files, automating tasks.
C. It helps scripts connect to the internet automatically.
D. It prevents scripts from crashing on errors.

Solution

  1. Step 1: Understand file I/O purpose

    File I/O lets scripts handle data stored in files, such as logs or reports.
  2. Step 2: Connect file I/O to automation

    By reading and writing files, scripts can automate many tasks involving data processing.
  3. Final Answer:

    It allows scripts to read from and write to files, automating tasks. -> Option B
  4. Quick Check:

    File I/O = Automate file data handling [OK]
Hint: File I/O means reading/writing files in scripts [OK]
Common Mistakes:
  • Confusing file I/O with internet access
  • Thinking file I/O speeds up script execution
  • Assuming file I/O prevents all script errors
2. Which of the following is the correct way to redirect the output of a command to a file in bash?
easy
A. command |> output.txt
B. command >> output.txt <
C. command < output.txt
D. command > output.txt

Solution

  1. Step 1: Identify output redirection syntax

    In bash, using > after a command sends its output to a file, overwriting it.
  2. Step 2: Check other options for correctness

    > is correct; >> appends, < reads input, | pipes output, so only > fits the question.
  3. Final Answer:

    command > output.txt -> Option D
  4. Quick Check:

    Output redirection uses > [OK]
Hint: Use > to write output to a file, overwriting it [OK]
Common Mistakes:
  • Using < instead of > for output
  • Confusing >> (append) with > (overwrite)
  • Using invalid symbols like |>
3. What will be the content of the file output.txt after running this script?
echo "Hello" > output.txt
echo "World" >> output.txt
medium
A. Hello World
B. World
C. Hello
D. HelloWorld

Solution

  1. Step 1: Analyze first echo command

    The first echo writes "Hello" to output.txt, overwriting any existing content.
  2. Step 2: Analyze second echo command

    The second echo appends "World" to output.txt, adding it on a new line.
  3. Final Answer:

    Hello World -> Option A
  4. Quick Check:

    First overwrite, then append with newline [OK]
Hint: > overwrites file, >> appends with newline [OK]
Common Mistakes:
  • Thinking >> overwrites instead of appends
  • Ignoring newline added by echo
  • Assuming output is just 'Hello' or 'World'
4. Identify the error in this script that tries to read from a file and print its content:
cat < input.txt
medium
A. The command should be 'cat >> input.txt' to append content.
B. The file name should be after the command without <, like 'cat > input.txt'.
C. The input redirection < is unnecessary; use 'cat input.txt' instead.
D. The script needs quotes around the file name.

Solution

  1. Step 1: Understand cat command usage

    cat reads and prints file content when given the filename as an argument.
  2. Step 2: Check input redirection usage

    Using < input.txt is valid but redundant here; 'cat input.txt' is simpler and standard.
  3. Final Answer:

    The input redirection < is unnecessary; use 'cat input.txt' instead. -> Option C
  4. Quick Check:

    cat filename is simpler than cat < filename [OK]
Hint: Use 'cat filename' to read files, not input redirection [OK]
Common Mistakes:
  • Confusing input redirection with output redirection
  • Using > or >> instead of < for input
  • Adding unnecessary quotes around filename
5. You want to create a script that reads a list of usernames from users.txt and writes a greeting for each user into greetings.txt. Which script snippet correctly does this?
hard
A. while read user; do echo "Hello, $user!" >> greetings.txt; done < users.txt
B. for user in users.txt; do echo "Hello, $user!" > greetings.txt; done
C. cat users.txt | echo "Hello, $user!" > greetings.txt
D. echo "Hello, $(cat users.txt)!" > greetings.txt

Solution

  1. Step 1: Understand reading lines from a file

    The 'while read user; do ... done < users.txt' reads each line (username) from users.txt correctly.
  2. Step 2: Check writing greetings

    Inside the loop, echo appends a greeting line to greetings.txt for each user.
  3. Final Answer:

    while read user; do echo "Hello, $user!" >> greetings.txt; done < users.txt -> Option A
  4. Quick Check:

    Loop reads lines and appends greetings [OK]
Hint: Use while read loop with input redirection and append >> [OK]
Common Mistakes:
  • Using for loop incorrectly on filename instead of lines
  • Overwriting greetings.txt inside loop instead of appending
  • Misusing cat with echo without looping
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