Bird
Raised Fist0
Bash Scriptingscripting~15 mins

Writing to files (echo, printf) in Bash Scripting - Mini Project: Build & Apply

Choose your learning style10 modes available
Writing to files using echo and printf in Bash
📖 Scenario: You are creating a simple log file for a small script that tracks daily tasks. You want to write messages to a file to keep a record.
🎯 Goal: Learn how to write text lines to a file using echo and printf commands in Bash scripting.
📋 What You'll Learn
Create a text file with initial content using echo
Add a configuration variable for the filename
Use printf to format and append text to the file
Display the final content of the file
💡 Why This Matters
🌍 Real World
Writing logs or reports to files is common in automation scripts to keep track of actions or errors.
💼 Career
Knowing how to write and append to files is essential for scripting tasks in system administration, DevOps, and automation roles.
Progress0 / 4 steps
1
Create a file with initial content using echo
Use echo to write the exact text "Daily Tasks Log" into a file named tasks.txt. Overwrite the file if it exists.
Bash Scripting
Hint

Use echo "text" > filename to write text to a file, replacing any existing content.

2
Add a variable for the filename
Create a variable called file and set it to the string "tasks.txt".
Bash Scripting
Hint

Use file="tasks.txt" to assign the filename to a variable.

3
Append formatted text using printf
Use printf to append the exact line "- Task 1: Write script" to the file stored in the variable file. Use the append operator >>.
Bash Scripting
Hint

Use printf "text\n" >> "$file" to append a line with a newline character.

4
Display the content of the file
Use cat to display the content of the file stored in the variable file.
Bash Scripting
Hint

Use cat "$file" to show the file content.

Practice

(1/5)
1. Which command in bash writes the text Hello World to a file named greeting.txt and adds a newline automatically?
easy
A. echo "Hello World" > greeting.txt
B. printf "Hello World" > greeting.txt
C. echo -n "Hello World" > greeting.txt
D. printf "Hello World\n" > greeting.txt

Solution

  1. Step 1: Understand echo behavior

    The echo command prints text and adds a newline by default.
  2. Step 2: Compare with printf

    printf requires explicit newline characters to add a newline.
  3. Final Answer:

    echo "Hello World" > greeting.txt -> Option A
  4. Quick Check:

    echo adds newline automatically = A [OK]
Hint: Use echo for quick writes with newline [OK]
Common Mistakes:
  • Using printf without \n misses newline
  • Using echo -n suppresses newline
  • Confusing > and >> operators
2. Which of the following is the correct syntax to append the line Log entry to a file log.txt using printf?
easy
A. printf "Log entry" >> log.txt
B. printf -n "Log entry" >> log.txt
C. printf "Log entry\n" >> log.txt
D. printf -e "Log entry" >> log.txt

Solution

  1. Step 1: Understand printf newline requirement

    printf does not add newline automatically; you must include \n explicitly.
  2. Step 2: Check append operator

    >> appends to the file without overwriting.
  3. Final Answer:

    printf "Log entry\n" >> log.txt -> Option C
  4. Quick Check:

    printf needs \n for newline + append with >> = C [OK]
Hint: Always add \n with printf to get a new line [OK]
Common Mistakes:
  • Forgetting \n causes no newline
  • Using > instead of >> overwrites file
  • Using invalid printf flags like -n or -e
3. What will be the content of file.txt after running this script?
echo "Line1" > file.txt
printf "Line2\n" >> file.txt
echo -n "Line3" >> file.txt
medium
A. Line1\nLine2Line3
B. Line1\nLine2\nLine3\n
C. Line1Line2Line3
D. Line1\nLine2\nLine3

Solution

  1. Step 1: Analyze echo "Line1" > file.txt

    This writes "Line1" plus newline to file.txt, overwriting existing content.
  2. Step 2: Analyze printf "Line2\n" >> file.txt

    This appends "Line2" plus newline to file.txt.
  3. Step 3: Analyze echo -n "Line3" >> file.txt

    This appends "Line3" without newline to file.txt.
  4. Final Answer:

    Line1\nLine2\nLine3 -> Option D
  5. Quick Check:

    echo adds newline, printf adds newline, echo -n no newline = D [OK]
Hint: Remember echo -n skips newline, printf needs explicit \n [OK]
Common Mistakes:
  • Assuming echo -n adds newline
  • Forgetting printf needs \n
  • Confusing overwrite (>) and append (>>)
4. The following script is intended to write two lines to output.txt but only writes one line. What is the error?
echo "First line" > output.txt
printf "Second line" > output.txt
medium
A. printf needs \n to add newline
B. Second command overwrites the file instead of appending
C. echo should use >> to append
D. Missing quotes around Second line

Solution

  1. Step 1: Check file redirection operators

    The first command uses > which creates or overwrites output.txt with "First line".
  2. Step 2: Check second command redirection

    The second command also uses > which overwrites output.txt, replacing previous content.
  3. Step 3: Correct approach

    To keep both lines, second command should use >> to append instead of overwrite.
  4. Final Answer:

    Second command overwrites the file instead of appending -> Option B
  5. Quick Check:

    Using > twice overwrites file = D [OK]
Hint: Use >> to append, > overwrites file [OK]
Common Mistakes:
  • Thinking \n missing causes no second line
  • Confusing > and >> operators
  • Assuming echo always appends
5. You want to create a file report.txt with exactly two lines:
"Summary:"
"All tests passed"
Which script snippet correctly creates this file with proper newlines and no extra blank lines?
hard
A. printf "Summary:\nAll tests passed\n" > report.txt
B. echo "Summary:" > report.txt && echo "All tests passed" > report.txt
C. echo -n "Summary:\nAll tests passed" > report.txt
D. printf "Summary:" > report.txt && printf "All tests passed" >> report.txt

Solution

  1. Step 1: Check echo commands in echo "Summary:" > report.txt && echo "All tests passed" > report.txt

    echo "Summary:" > report.txt && echo "All tests passed" > report.txt uses echo twice with > redirection, so the second command overwrites the first line.
  2. Step 2: Check printf commands in printf "Summary:\nAll tests passed\n" > report.txt

    printf "Summary:\nAll tests passed\n" > report.txt uses printf with explicit \n for newlines, creating exactly two lines with no extra blank lines.
  3. Step 3: Analyze Options C and D

    echo -n "Summary:\nAll tests passed" > report.txt uses echo -n which suppresses newlines and includes literal \n, so no actual new lines appear. printf "Summary:" > report.txt && printf "All tests passed" >> report.txt uses printf without \n, so lines run together.
  4. Final Answer:

    printf "Summary:\nAll tests passed\n" > report.txt -> Option A
  5. Quick Check:

    printf with explicit \n creates exact lines = B [OK]
Hint: Use printf with \n for precise multi-line output [OK]
Common Mistakes:
  • Using echo -n with \n prints literal \n
  • Forgetting \n in printf causes no new lines
  • Using > and >> inconsistently
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